mirror of
https://github.com/graphql-hive/console
synced 2026-05-01 11:27:17 +00:00
98 lines
2.5 KiB
TypeScript
98 lines
2.5 KiB
TypeScript
import type { RawReport } from '@hive/usage-common';
|
|
import { splitReport } from '../src/usage';
|
|
|
|
test('should split report based on operation map length', () => {
|
|
const now = Date.now();
|
|
const op1 = {
|
|
operationMapKey: 'op1',
|
|
timestamp: now,
|
|
execution: {
|
|
ok: true,
|
|
errorsTotal: 0,
|
|
duration: 100,
|
|
},
|
|
metadata: {
|
|
client: {
|
|
name: 'test-client',
|
|
version: 'test-version',
|
|
},
|
|
},
|
|
};
|
|
const op2 = {
|
|
operationMapKey: 'op2',
|
|
timestamp: now,
|
|
execution: {
|
|
ok: true,
|
|
errorsTotal: 0,
|
|
duration: 100,
|
|
},
|
|
metadata: {
|
|
client: {
|
|
name: 'test-client',
|
|
version: 'test-version',
|
|
},
|
|
},
|
|
};
|
|
const op3 = {
|
|
operationMapKey: 'op3',
|
|
timestamp: now,
|
|
execution: {
|
|
ok: true,
|
|
errorsTotal: 0,
|
|
duration: 100,
|
|
},
|
|
metadata: {
|
|
client: {
|
|
name: 'test-client',
|
|
version: 'test-version',
|
|
},
|
|
},
|
|
};
|
|
const report: RawReport = {
|
|
id: 'test-id',
|
|
size: 5,
|
|
target: 'test-target',
|
|
organization: 'test-organization',
|
|
map: {
|
|
op1: {
|
|
key: 'op1',
|
|
operation: 'test-operation-1',
|
|
fields: ['test-field-1'],
|
|
},
|
|
op2: {
|
|
key: 'op2',
|
|
operation: 'test-operation-2',
|
|
fields: ['test-field-2'],
|
|
},
|
|
op3: {
|
|
key: 'op3',
|
|
operation: 'test-operation-3',
|
|
fields: ['test-field-3'],
|
|
},
|
|
},
|
|
operations: [op1, op1, op2, op3, op3],
|
|
};
|
|
|
|
const reports = splitReport(report, 3);
|
|
expect(reports).toHaveLength(3);
|
|
|
|
expect(Object.keys(reports[0].map)).toEqual(['op1']);
|
|
expect(reports[0].organization).toEqual('test-organization');
|
|
expect(reports[0].target).toEqual('test-target');
|
|
expect(reports[0].size).toEqual(2);
|
|
expect(reports[0].operations[0].operationMapKey).toEqual('op1');
|
|
expect(reports[0].operations[1].operationMapKey).toEqual('op1');
|
|
|
|
expect(Object.keys(reports[1].map)).toEqual(['op2']);
|
|
expect(reports[1].organization).toEqual('test-organization');
|
|
expect(reports[1].target).toEqual('test-target');
|
|
expect(reports[1].size).toEqual(1);
|
|
expect(reports[1].operations[0].operationMapKey).toEqual('op2');
|
|
|
|
expect(Object.keys(reports[2].map)).toEqual(['op3']);
|
|
expect(reports[2].organization).toEqual('test-organization');
|
|
expect(reports[2].target).toEqual('test-target');
|
|
expect(reports[2].size).toEqual(2);
|
|
expect(reports[2].operations[0].operationMapKey).toEqual('op3');
|
|
expect(reports[2].operations[1].operationMapKey).toEqual('op3');
|
|
});
|