test: cover checked-in openapi artifacts
This commit is contained in:
parent
974c83d67e
commit
44e13cc67e
34
apps/backend/src/openapi-artifacts.spec.ts
Normal file
34
apps/backend/src/openapi-artifacts.spec.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { join, resolve } from 'node:path';
|
||||
|
||||
describe('checked-in OpenAPI artifacts', () => {
|
||||
const rootDir = resolve(process.cwd(), '../..');
|
||||
const frontendTypes = readFileSync(join(rootDir, 'apps/frontend/src/api/types.ts'), 'utf8');
|
||||
const openapiYaml = readFileSync(join(rootDir, 'docs/openapi/openapi.yaml'), 'utf8');
|
||||
|
||||
const requiredPaths = [
|
||||
'/api/v1/auth/register',
|
||||
'/api/v1/auth/login',
|
||||
'/api/v1/auth/refresh',
|
||||
'/api/v1/auth/logout',
|
||||
'/api/v1/auth/me',
|
||||
'/api/v1/securities/screener',
|
||||
'/api/v1/portfolios',
|
||||
'/api/v1/portfolios/{id}',
|
||||
'/api/v1/portfolios/{id}/positions',
|
||||
'/api/v1/portfolios/{id}/positions/{positionId}',
|
||||
'/api/v1/portfolios/{id}/analytics',
|
||||
];
|
||||
|
||||
it('frontend generated types include current protected domains', () => {
|
||||
for (const path of requiredPaths) {
|
||||
expect(frontendTypes).toContain(`'${path}'`);
|
||||
}
|
||||
});
|
||||
|
||||
it('static OpenAPI YAML snapshot includes current protected domains', () => {
|
||||
for (const path of requiredPaths) {
|
||||
expect(openapiYaml).toContain(`${path}:`);
|
||||
}
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user