From c7375a7b7bd874fec06665b07b8c711dd20e1274 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Wed, 29 Jun 2022 11:03:24 +0200 Subject: [PATCH] Feat: test feature events schema --- .../spec/feature-events-schema.test.ts | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/lib/openapi/spec/feature-events-schema.test.ts diff --git a/src/lib/openapi/spec/feature-events-schema.test.ts b/src/lib/openapi/spec/feature-events-schema.test.ts new file mode 100644 index 0000000000..3f9400dfb4 --- /dev/null +++ b/src/lib/openapi/spec/feature-events-schema.test.ts @@ -0,0 +1,76 @@ +import { validateSchema } from '../validate'; +import { + FeatureEventsSchema, + featureEventsSchema, +} from './feature-events-schema'; + +test('featureEventsSchema', () => { + const data: FeatureEventsSchema = { + toggleName: 'my-feature', + events: [ + { + id: 899, + type: 'feature-created', + createdBy: 'user@company.com', + createdAt: '2022-05-31T13:32:20.560Z', + data: { + name: 'new-feature', + description: 'Toggle description', + type: 'release', + project: 'my-project', + stale: false, + variants: [], + createdAt: '2022-05-31T13:32:20.547Z', + lastSeenAt: null, + impressionData: true, + }, + preData: null, + tags: [], + featureName: 'new-feature', + project: 'my-project', + environment: null, + }, + ], + }; + + expect(validateSchema(featureEventsSchema.$id, data)).toBeUndefined(); +}); + +test('featureEventsSchema types', () => { + const data: FeatureEventsSchema = { + toggleName: 'my-feature', + events: [ + { + // @ts-expect-error + id: '1', + type: 'feature-created', + createdBy: 'user@company.com', + createdAt: '2022-05-31T13:32:20.560Z', + data: { + name: 'new-feature', + description: 'Toggle description', + type: 'release', + project: 'my-project', + stale: false, + variants: [], + createdAt: '2022-05-31T13:32:20.547Z', + lastSeenAt: null, + impressionData: true, + }, + preData: null, + tags: [ + { + type: '', + // @ts-expect-error + value: 1, + }, + ], + featureName: 'new-feature', + project: 'my-project', + environment: null, + }, + ], + }; + + expect(validateSchema(featureEventsSchema.$id, data)).not.toBeUndefined(); +});