Files
headplane/tests/integration/versions.test.ts
T

40 lines
1.1 KiB
TypeScript

import { describe, expect, test } from 'vitest';
import canonicals from '~/openapi-canonical-families.json';
import {
getBootstrapClient,
getRuntimeClient,
HS_VERSIONS,
Version,
} from './setup/env';
function getCanonicalVersion(version: Version) {
const canonical = Object.entries(canonicals).find(([_, family]) =>
family.includes(version),
)?.[0] as Version | undefined;
if (!canonical) {
return version;
}
return canonical;
}
describe.for(HS_VERSIONS)('Headscale %s: Runtime Client', (version) => {
test('the runtime client is usable', async () => {
const bootstrapper = await getBootstrapClient(version);
const runtimeClient = bootstrapper.getRuntimeClient('test-api-key');
expect(runtimeClient).toBeDefined();
});
test('the runtime client has the correct canonical API version', async () => {
const bootstrapper = await getBootstrapClient(version);
expect(bootstrapper.apiVersion).toBe(getCanonicalVersion(version));
});
test('the health check endpoint works', async () => {
const client = await getRuntimeClient(version);
const health = await client.isHealthy();
expect(health).toBe(true);
});
});