mirror of
https://github.com/logto-io/logto.git
synced 2025-02-17 22:04:19 -05:00
test(test): validate swagger.json using openapi-schema-validator (#1445)
This commit is contained in:
parent
ff6f2235ea
commit
6dea366032
3 changed files with 39 additions and 3 deletions
|
@ -25,6 +25,8 @@
|
|||
"got": "^11.8.2",
|
||||
"jest": "^27.5.1",
|
||||
"node-fetch": "^2.6.7",
|
||||
"openapi-schema-validator": "^12.0.0",
|
||||
"openapi-types": "^12.0.0",
|
||||
"prettier": "^2.3.2",
|
||||
"text-encoder": "^0.0.4",
|
||||
"ts-node": "^10.0.0",
|
||||
|
|
|
@ -1,7 +1,19 @@
|
|||
import OpenApiSchemaValidator from 'openapi-schema-validator';
|
||||
import { OpenAPI } from 'openapi-types';
|
||||
|
||||
import api from '@/api';
|
||||
|
||||
describe('Swagger check', () => {
|
||||
it('should succeed to provide swagger.json', async () => {
|
||||
expect(await api.get('swagger.json')).toHaveProperty('statusCode', 200);
|
||||
it('should provide a valid swagger.json', async () => {
|
||||
const response = await api.get('swagger.json');
|
||||
expect(response).toHaveProperty('statusCode', 200);
|
||||
expect(response.headers['content-type']).toContain('application/json');
|
||||
|
||||
expect(() => {
|
||||
const object: unknown = JSON.parse(response.body);
|
||||
const validator = new OpenApiSchemaValidator({ version: 3 });
|
||||
const result = validator.validate(object as OpenAPI.Document);
|
||||
expect(result.errors).toEqual([]);
|
||||
}).not.toThrow();
|
||||
});
|
||||
});
|
||||
|
|
24
pnpm-lock.yaml
generated
24
pnpm-lock.yaml
generated
|
@ -1034,6 +1034,8 @@ importers:
|
|||
got: ^11.8.2
|
||||
jest: ^27.5.1
|
||||
node-fetch: ^2.6.7
|
||||
openapi-schema-validator: ^12.0.0
|
||||
openapi-types: ^12.0.0
|
||||
prettier: ^2.3.2
|
||||
text-encoder: ^0.0.4
|
||||
ts-node: ^10.0.0
|
||||
|
@ -1052,6 +1054,8 @@ importers:
|
|||
got: 11.8.3
|
||||
jest: 27.5.1_ts-node@10.7.0
|
||||
node-fetch: 2.6.7
|
||||
openapi-schema-validator: 12.0.0
|
||||
openapi-types: 12.0.0
|
||||
prettier: 2.5.1
|
||||
text-encoder: 0.0.4
|
||||
ts-node: 10.7.0_drbbnc2wk7uwp4gsdsdvgzqgya
|
||||
|
@ -5810,6 +5814,15 @@ packages:
|
|||
indent-string: 4.0.0
|
||||
dev: true
|
||||
|
||||
/ajv-formats/2.1.1:
|
||||
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
|
||||
peerDependenciesMeta:
|
||||
ajv:
|
||||
optional: true
|
||||
dependencies:
|
||||
ajv: 8.8.2
|
||||
dev: true
|
||||
|
||||
/ajv/6.12.6:
|
||||
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||
dependencies:
|
||||
|
@ -12071,6 +12084,15 @@ packages:
|
|||
/only/0.0.2:
|
||||
resolution: {integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=}
|
||||
|
||||
/openapi-schema-validator/12.0.0:
|
||||
resolution: {integrity: sha512-dtQ5iCiCluL/SXmd5LWqfPXvN/WbVJeCp+3+exF6BHBN3fry5tNAhFllZICYHQ2kTfQxrfwbQcy0fqaw9wOb+w==}
|
||||
dependencies:
|
||||
ajv: 8.8.2
|
||||
ajv-formats: 2.1.1
|
||||
lodash.merge: 4.6.2
|
||||
openapi-types: 12.0.0
|
||||
dev: true
|
||||
|
||||
/openapi-types/12.0.0:
|
||||
resolution: {integrity: sha512-6Wd9k8nmGQHgCbehZCP6wwWcfXcvinhybUTBatuhjRsCxUIujuYFZc9QnGeae75CyHASewBtxs0HX/qwREReUw==}
|
||||
dev: true
|
||||
|
@ -14982,7 +15004,7 @@ packages:
|
|||
'@types/jest': 27.4.1
|
||||
bs-logger: 0.2.6
|
||||
fast-json-stable-stringify: 2.1.0
|
||||
jest: 27.5.1
|
||||
jest: 27.5.1_ts-node@10.7.0
|
||||
jest-util: 27.5.1
|
||||
json5: 2.2.1
|
||||
lodash.memoize: 4.1.2
|
||||
|
|
Loading…
Add table
Reference in a new issue