diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 11864401dd..89aaf64b6b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,6 +46,8 @@ jobs: { name: 'graphql', path: 'tests/graphql', }, { name: 'events', path: 'src/events/tests', }, { name: 'automated-pipelines', path: 'src/automated-pipelines/tests', }, + { name: 'rest', path: 'src/rest/tests', }, + { name: 'webhooks', path: 'src/webhooks/tests', }, { name: 'linting', path: 'tests/linting', }, { name: 'meta', path: 'tests/meta', }, { name: 'routing', path: 'tests/routing', }, diff --git a/src/rest/tests/get-schema-files.js b/src/rest/tests/get-schema-files.js new file mode 100644 index 0000000000..972c44f081 --- /dev/null +++ b/src/rest/tests/get-schema-files.js @@ -0,0 +1,32 @@ +import { describe, expect } from '@jest/globals' + +import { getOpenApiSchemaFiles } from '../scripts/utils/sync.js' +import { allVersions } from '../../../lib/all-versions.js' + +const supportedReleases = Object.keys(allVersions).map( + (version) => allVersions[version].openApiVersionName +) +describe('rest data files are generated correctly from dereferenced openapi files', () => { + test('rest schema list should include calendar date versions', async () => { + const schemas = [ + 'fpt-2022-08-09.json', + 'fpt-2022-10-09.json', + 'fpt-2022-11-09.json', + 'ghec-2022-09-09.json', + ...supportedReleases, + ] + + const expectedRestSchemas = [ + 'fpt-2022-08-09.json', + 'fpt-2022-10-09.json', + 'fpt-2022-11-09.json', + 'ghec-2022-09-09.json', + ...supportedReleases + .filter((release) => release !== 'ghec' && release !== 'fpt') + .map((release) => `${release}.json`), + ] + + const { restSchemas } = await getOpenApiSchemaFiles(schemas) + expect(restSchemas.sort()).toEqual(expectedRestSchemas.sort()) + }) +}) diff --git a/src/webhooks/tests/get-schema-files.js b/src/webhooks/tests/get-schema-files.js new file mode 100644 index 0000000000..07800d7faa --- /dev/null +++ b/src/webhooks/tests/get-schema-files.js @@ -0,0 +1,24 @@ +import { describe, expect } from '@jest/globals' + +import { getOpenApiSchemaFiles } from '../../rest/scripts/utils/sync.js' +import { allVersions } from '../../../lib/all-versions.js' + +describe('webhook data files are generated correctly from dereferenced openapi files', () => { + test('webhook schema list should not include calendar date versions', async () => { + const supportedReleases = Object.keys(allVersions).map( + (version) => allVersions[version].openApiVersionName + ) + const schemas = [ + 'fpt-2022-08-09.json', + 'fpt-2022-10-09.json', + 'fpt-2022-11-09.json', + 'ghec-2022-09-09.json', + ...supportedReleases, + ] + + const { webhookSchemas } = await getOpenApiSchemaFiles(schemas) + expect(webhookSchemas.sort()).toEqual( + supportedReleases.sort().map((release) => `${release}.json`) + ) + }) +}) diff --git a/tests/unit/openapi-decorator.js b/tests/unit/openapi-decorator.js deleted file mode 100644 index 0933f6e1ac..0000000000 --- a/tests/unit/openapi-decorator.js +++ /dev/null @@ -1,39 +0,0 @@ -import { describe, expect } from '@jest/globals' - -import { getOpenApiSchemaFiles } from '../../src/rest/scripts/utils/sync.js' -import { allVersions } from '../../lib/all-versions.js' - -const supportedReleases = Object.keys(allVersions).map( - (version) => allVersions[version].openApiVersionName -) -describe('decorated static files are generated correctly from dereferenced openapi files', () => { - // If there is a request with no request body parameters and all of - // the responses have no content, then we can create a docs - // example for just status codes below 300. All other status codes will - // be listed in the status code table in the docs. - test('webhook schema list should not include calendar date versions', async () => { - const schemas = [ - 'fpt-2022-08-09.json', - 'fpt-2022-10-09.json', - 'fpt-2022-11-09.json', - 'ghec-2022-09-09.json', - ...supportedReleases, - ] - - const expectedRestSchemas = [ - 'fpt-2022-08-09.json', - 'fpt-2022-10-09.json', - 'fpt-2022-11-09.json', - 'ghec-2022-09-09.json', - ...supportedReleases - .filter((release) => release !== 'ghec' && release !== 'fpt') - .map((release) => `${release}.json`), - ] - - const { restSchemas, webhookSchemas } = await getOpenApiSchemaFiles(schemas) - expect(restSchemas.sort()).toEqual(expectedRestSchemas.sort()) - expect(webhookSchemas.sort()).toEqual( - supportedReleases.sort().map((release) => `${release}.json`) - ) - }) -})