| import { describe, expect, test } from 'vitest' | |
| import { getJsonValidator } from '@/tests/lib/validate-json-schema' | |
| import { allVersions } from '@/versions/lib/all-versions' | |
| import { latest } from '@/versions/lib/enterprise-server-releases' | |
| import schema from '@/tests/helpers/schemas/versions-schema' | |
| import nonEnterpriseDefaultVersion from '@/versions/lib/non-enterprise-default-version' | |
| import { formatAjvErrors } from '@/tests/helpers/schemas' | |
| const validate = getJsonValidator(schema) | |
| describe('versions module', () => { | |
| test('is an object with versions as keys', () => { | |
| expect(nonEnterpriseDefaultVersion in allVersions).toBe(true) | |
| expect(`enterprise-server@${latest}` in allVersions).toBe(true) | |
| }) | |
| test('every version is valid', () => { | |
| for (const versionObj of Object.values(allVersions)) { | |
| const versionName = versionObj.version | |
| const isValid = validate(versionObj) | |
| let errors: string | undefined | |
| if (!isValid) { | |
| errors = `version '${versionName}': ${formatAjvErrors(validate.errors || [])}` | |
| } | |
| expect(isValid, errors).toBe(true) | |
| } | |
| }) | |
| test('check REST api calendar date versioned versions set to correct latestApiVersion', () => { | |
| for (const versionObj of Object.values(allVersions)) { | |
| if (versionObj.apiVersions.length > 0) { | |
| const latestApiVersion = versionObj.latestApiVersion | |
| const apiVersions = versionObj.apiVersions | |
| expect(apiVersions).toContain(latestApiVersion) | |
| const latestApiDate = new Date(latestApiVersion).getTime() | |
| for (const version of apiVersions) { | |
| expect(latestApiDate).toBeGreaterThanOrEqual(new Date(version).getTime()) | |
| } | |
| } | |
| } | |
| }) | |
| }) | |