-
Notifications
You must be signed in to change notification settings - Fork 8k
/
events_details.test.ts
55 lines (49 loc) · 1.66 KB
/
events_details.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { timelineEventsDetailsSchema } from './events_details';
const mockEventsDetails = {
entityType: 'events',
indexName: 'test-large-index',
eventId: 'enfXnY0Byt9Ce9tO1aWh',
factoryQueryType: 'eventsDetails',
runtimeMappings: {},
};
describe('timelineEventsDetailsSchema', () => {
it('should correctly parse the event details request schema', () => {
expect(timelineEventsDetailsSchema.parse(mockEventsDetails)).toEqual(mockEventsDetails);
});
it('should correctly parse the event details request schema and remove unknown fields', () => {
const invalidEventsDetailsRequest = {
...mockEventsDetails,
unknownField: 'should-be-removed',
};
expect(timelineEventsDetailsSchema.parse(invalidEventsDetailsRequest)).toEqual(
mockEventsDetails
);
});
it('should correctly error if an incorrect field type is provided for a schema key', () => {
const invalidEventsDetailsRequest = {
...mockEventsDetails,
indexName: 123,
};
expect(() => {
timelineEventsDetailsSchema.parse(invalidEventsDetailsRequest);
}).toThrowErrorMatchingInlineSnapshot(`
"[
{
\\"code\\": \\"invalid_type\\",
\\"expected\\": \\"string\\",
\\"received\\": \\"number\\",
\\"path\\": [
\\"indexName\\"
],
\\"message\\": \\"Expected string, received number\\"
}
]"
`);
});
});