mirror of
https://github.com/Unleash/unleash.git
synced 2025-03-18 00:19:49 +01:00
## 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>
107 lines
2.8 KiB
TypeScript
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');
|
|
});
|