|
1 | | -import { FromSchema } from 'json-schema-to-ts'; |
2 | | -import { A } from 'ts-toolbelt'; |
| 1 | +import type { FromSchema } from 'json-schema-to-ts'; |
| 2 | +import type { A } from 'ts-toolbelt'; |
3 | 3 |
|
4 | | -import { EventTypeDetail } from '@castore/core'; |
| 4 | +import type { EventTypeDetail } from '@castore/core'; |
5 | 5 |
|
6 | 6 | import { JSONSchemaEventType } from './eventType'; |
7 | 7 |
|
| 8 | +const expectedProperties = new Set([ |
| 9 | + // applying super(...) apparently adds { _types: undefined, parseEventDetail: undefined } to the class |
| 10 | + '_types', |
| 11 | + 'parseEventDetail', |
| 12 | + 'type', |
| 13 | + 'payloadSchema', |
| 14 | + 'metadataSchema', |
| 15 | +]); |
| 16 | + |
8 | 17 | describe('jsonSchemaEvent implementation', () => { |
9 | 18 | const type = 'SOMETHING_HAPPENED'; |
10 | 19 |
|
@@ -51,7 +60,9 @@ describe('jsonSchemaEvent implementation', () => { |
51 | 60 | > = 1; |
52 | 61 | assertSimpleEventTypeDetail; |
53 | 62 |
|
54 | | - expect(Object.keys(simpleEventType)).toHaveLength(3); |
| 63 | + expect(new Set(Object.keys(simpleEventType))).toStrictEqual( |
| 64 | + expectedProperties, |
| 65 | + ); |
55 | 66 | expect(simpleEventType.type).toStrictEqual(type); |
56 | 67 | expect(simpleEventType.payloadSchema).toStrictEqual(undefined); |
57 | 68 | expect(simpleEventType.metadataSchema).toStrictEqual(undefined); |
@@ -82,7 +93,9 @@ describe('jsonSchemaEvent implementation', () => { |
82 | 93 | > = 1; |
83 | 94 | assertPayloadEventTypeDetail; |
84 | 95 |
|
85 | | - expect(Object.keys(payloadEventType)).toHaveLength(3); |
| 96 | + expect(new Set(Object.keys(payloadEventType))).toStrictEqual( |
| 97 | + expectedProperties, |
| 98 | + ); |
86 | 99 | expect(payloadEventType.type).toStrictEqual(type); |
87 | 100 | expect(payloadEventType.payloadSchema).toStrictEqual(payloadSchema); |
88 | 101 | expect(payloadEventType.metadataSchema).toStrictEqual(undefined); |
@@ -113,7 +126,9 @@ describe('jsonSchemaEvent implementation', () => { |
113 | 126 | > = 1; |
114 | 127 | assertMetadataEventTypeDetail; |
115 | 128 |
|
116 | | - expect(Object.keys(metadataEventType)).toHaveLength(3); |
| 129 | + expect(new Set(Object.keys(metadataEventType))).toStrictEqual( |
| 130 | + expectedProperties, |
| 131 | + ); |
117 | 132 | expect(metadataEventType.type).toStrictEqual(type); |
118 | 133 | expect(metadataEventType.payloadSchema).toStrictEqual(undefined); |
119 | 134 | expect(metadataEventType.metadataSchema).toStrictEqual(metadataSchema); |
@@ -146,7 +161,9 @@ describe('jsonSchemaEvent implementation', () => { |
146 | 161 | > = 1; |
147 | 162 | assertFullEventTypeDetail; |
148 | 163 |
|
149 | | - expect(Object.keys(fullEventType)).toHaveLength(3); |
| 164 | + expect(new Set(Object.keys(fullEventType))).toStrictEqual( |
| 165 | + expectedProperties, |
| 166 | + ); |
150 | 167 | expect(fullEventType.type).toStrictEqual(type); |
151 | 168 | expect(fullEventType.payloadSchema).toStrictEqual(payloadSchema); |
152 | 169 | expect(fullEventType.metadataSchema).toStrictEqual(metadataSchema); |
|
0 commit comments