UNPKG

@spotinst/spinnaker-deck

Version:

Spinnaker-Deck service, forked with support to Spotinst

84 lines (81 loc) 2.63 kB
import { IGceHealthCheck, IGceHealthCheckKind } from 'google/domain'; import { parseHealthCheckUrl, getHealthCheckOptions, getDuplicateHealthCheckNames, } from 'google/healthCheck/healthCheckUtils'; describe('Health check display utils', () => { let healthChecks: IGceHealthCheck[]; beforeEach(() => { healthChecks = getSampleHealthChecks(); }); describe('parseHealthCheckUrl', () => { it('extracts name and kind from health check url', () => { healthChecks.forEach((hc) => { expect(parseHealthCheckUrl(hc.selfLink)).toEqual({ healthCheckName: hc.name, healthCheckKind: hc.kind, }); }); }); }); describe('getHealthCheckOptions', () => { it('adds appropriate displayName to each health check, including kind when name is duplicate', () => { expect(getHealthCheckOptions(healthChecks).map((hc) => hc.displayName)).toEqual([ 'hello (healthCheck)', 'hello (httpsHealthCheck)', 'ping', ]); }); }); describe('getDuplicateHealthCheckNames', () => { it('returns list of names that occur more than once in list of health checks', () => { const duplicates = getDuplicateHealthCheckNames(healthChecks); expect(duplicates.size).toEqual(1); expect(duplicates.has('hello')).toBeTruthy(); }); }); }); function getSampleHealthChecks(): IGceHealthCheck[] { return [ { account: 'my-gce-account', checkIntervalSec: 1, healthCheckType: 'HTTP', healthyThreshold: 1, kind: IGceHealthCheckKind.healthCheck, name: 'hello', port: 8080, requestPath: '/hello', selfLink: 'https://www.googleapis.com/compute/beta/projects/my-project/global/healthChecks/hello', timeoutSec: 1, unhealthyThreshold: 1, }, { account: 'my-gce-account', checkIntervalSec: 1, healthCheckType: 'HTTPS', healthyThreshold: 1, kind: IGceHealthCheckKind.httpsHealthCheck, name: 'hello', port: 8080, requestPath: '/hello', selfLink: 'https://www.googleapis.com/compute/beta/projects/my-project/global/httpsHealthChecks/hello', timeoutSec: 1, unhealthyThreshold: 1, }, { account: 'my-gce-account', checkIntervalSec: 1, healthCheckType: 'HTTP', healthyThreshold: 1, kind: IGceHealthCheckKind.httpHealthCheck, name: 'ping', port: 8080, requestPath: '/ping', selfLink: 'https://www.googleapis.com/compute/beta/projects/my-project/global/httpHealthChecks/ping', timeoutSec: 1, unhealthyThreshold: 1, }, ]; }