1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-18 00:19:49 +01:00
unleash.unleash/src/lib/services/client-metrics/schema.test.ts
Gastón Fournier 7a242ecf2a
chore: add bulk endpoint for metrics and app registration for edge (#3079)
## About the changes
Implementation of bulk metrics and registration endpoint. This will be
used by edge nodes to send all collected information.

Types around metrics were improved and `IClientApp.bucket` with type
`any` is no longer needed

---------

Co-authored-by: sighphyre <liquidwicked64@gmail.com>
2023-02-15 09:13:32 +01:00

107 lines
2.8 KiB
TypeScript

import { clientRegisterSchema, clientMetricsSchema } from './schema';
test('clientRegisterSchema should allow empty ("") instanceId', () => {
const { value } = clientRegisterSchema.validate({
appName: 'test',
instanceId: '',
strategies: ['default'],
started: Date.now(),
interval: 100,
});
//@ts-ignore
expect(value.instanceId).toBe('default');
});
test('clientRegisterSchema should allow string dates', () => {
const date = new Date();
const { value } = clientRegisterSchema.validate({
appName: 'test',
strategies: ['default'],
started: date.toISOString(),
interval: 100,
});
expect(value.started).toStrictEqual(date);
});
test('clientRegisterSchema should allow undefined instanceId', () => {
const { value } = clientRegisterSchema.validate({
appName: 'test',
strategies: ['default'],
started: Date.now(),
interval: 100,
});
expect(value.instanceId).toBe('default');
});
test('clientRegisterSchema should allow null instanceId', () => {
const { value } = clientRegisterSchema.validate({
appName: 'test',
instanceId: null,
strategies: ['default'],
started: Date.now(),
interval: 100,
});
expect(value.instanceId).toBe('default');
});
test('clientRegisterSchema should use instanceId', () => {
const { value } = clientRegisterSchema.validate({
appName: 'test',
instanceId: 'some',
strategies: ['default'],
started: Date.now(),
interval: 100,
});
expect(value.instanceId).toBe('some');
});
test('clientMetricsSchema should allow null instanceId', () => {
const { value } = clientMetricsSchema.validate({
appName: 'test',
instanceId: null,
bucket: {
started: Date.now(),
stopped: Date.now(),
},
});
expect(value.instanceId).toBe('default');
});
test('clientMetricsSchema should allow empty ("") instanceId', () => {
const { value } = clientMetricsSchema.validate({
appName: 'test',
instanceId: '',
bucket: {
started: Date.now(),
stopped: Date.now(),
},
});
expect(value.instanceId).toBe('default');
});
test('clientMetricsSchema should allow undefined instanceId', () => {
const { value } = clientMetricsSchema.validate({
appName: 'test',
bucket: {
started: Date.now(),
stopped: Date.now(),
},
});
expect(value.instanceId).toBe('default');
});
test('clientMetricsSchema should use instanceId', () => {
const { value } = clientMetricsSchema.validate({
appName: 'test',
instanceId: 'some',
bucket: {
started: Date.now(),
stopped: Date.now(),
},
});
expect(value.instanceId).toBe('some');
});