Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
core
/
components
/
TimeSeries
/
File Content:
utils.test.ts
import { EventBus, FieldType } from '@grafana/data'; import { getTheme } from '@grafana/ui'; import { preparePlotConfigBuilder } from './utils'; describe('when fill below to option is used', () => { let eventBus: EventBus; // eslint-disable-next-line let renderers: any[]; // eslint-disable-next-line let tests: any; beforeEach(() => { eventBus = { publish: jest.fn(), getStream: jest.fn(), subscribe: jest.fn(), removeAllListeners: jest.fn(), newScopedBus: jest.fn(), }; renderers = []; tests = [ { alignedFrame: { fields: [ { config: {}, values: [1667406900000, 1667407170000, 1667407185000], name: 'Time', state: { multipleFrames: true, displayName: 'Time', origin: { fieldIndex: 0, frameIndex: 0 } }, type: FieldType.time, }, { config: { displayNameFromDS: 'Test1', custom: { fillBelowTo: 'Test2' }, min: 0, max: 100 }, values: [1, 2, 3], name: 'Value', state: { multipleFrames: true, displayName: 'Test1', origin: { fieldIndex: 1, frameIndex: 0 } }, type: FieldType.number, }, { config: { displayNameFromDS: 'Test2', min: 0, max: 100 }, values: [4, 5, 6], name: 'Value', state: { multipleFrames: true, displayName: 'Test2', origin: { fieldIndex: 1, frameIndex: 1 } }, type: FieldType.number, }, ], length: 3, }, allFrames: [ { name: 'Test1', refId: 'A', fields: [ { config: {}, values: [1667406900000, 1667407170000, 1667407185000], name: 'Time', state: { multipleFrames: true, displayName: 'Time', origin: { fieldIndex: 0, frameIndex: 0 } }, type: FieldType.time, }, { config: { displayNameFromDS: 'Test1', custom: { fillBelowTo: 'Test2' }, min: 0, max: 100 }, values: [1, 2, 3], name: 'Value', state: { multipleFrames: true, displayName: 'Test1', origin: { fieldIndex: 1, frameIndex: 0 } }, type: FieldType.number, }, ], length: 2, }, { name: 'Test2', refId: 'B', fields: [ { config: {}, values: [1667406900000, 1667407170000, 1667407185000], name: 'Time', state: { multipleFrames: true, displayName: 'Time', origin: { fieldIndex: 0, frameIndex: 1 } }, type: FieldType.time, }, { config: { displayNameFromDS: 'Test2', min: 0, max: 100 }, values: [1, 2, 3], name: 'Value', state: { multipleFrames: true, displayName: 'Test2', origin: { fieldIndex: 1, frameIndex: 1 } }, type: FieldType.number, }, ], length: 2, }, ], expectedResult: 1, }, { alignedFrame: { fields: [ { config: {}, values: [1667406900000, 1667407170000, 1667407185000], name: 'time', state: { multipleFrames: true, displayName: 'time', origin: { fieldIndex: 0, frameIndex: 0 } }, type: FieldType.time, }, { config: { custom: { fillBelowTo: 'below_value1' } }, values: [1, 2, 3], name: 'value1', state: { multipleFrames: true, displayName: 'value1', origin: { fieldIndex: 1, frameIndex: 0 } }, type: FieldType.number, }, { config: { custom: { fillBelowTo: 'below_value2' } }, values: [4, 5, 6], name: 'value2', state: { multipleFrames: true, displayName: 'value2', origin: { fieldIndex: 2, frameIndex: 0 } }, type: FieldType.number, }, { config: {}, values: [4, 5, 6], name: 'below_value1', state: { multipleFrames: true, displayName: 'below_value1', origin: { fieldIndex: 1, frameIndex: 1 } }, type: FieldType.number, }, { config: {}, values: [4, 5, 6], name: 'below_value2', state: { multipleFrames: true, displayName: 'below_value2', origin: { fieldIndex: 2, frameIndex: 1 } }, type: FieldType.number, }, ], length: 5, }, allFrames: [ { refId: 'A', fields: [ { config: {}, values: [1667406900000, 1667407170000, 1667407185000], name: 'time', state: { multipleFrames: true, displayName: 'time', origin: { fieldIndex: 0, frameIndex: 0 } }, type: FieldType.time, }, { config: { custom: { fillBelowTo: 'below_value1' } }, values: [1, 2, 3], name: 'value1', state: { multipleFrames: true, displayName: 'value1', origin: { fieldIndex: 1, frameIndex: 0 } }, type: FieldType.number, }, { config: { custom: { fillBelowTo: 'below_value2' } }, values: [4, 5, 6], name: 'value2', state: { multipleFrames: true, displayName: 'value2', origin: { fieldIndex: 2, frameIndex: 0 } }, type: FieldType.number, }, ], length: 3, }, { refId: 'B', fields: [ { config: {}, values: [1667406900000, 1667407170000, 1667407185000], name: 'time', state: { multipleFrames: true, displayName: 'time', origin: { fieldIndex: 0, frameIndex: 1 } }, type: FieldType.time, }, { config: {}, values: [4, 5, 6], name: 'below_value1', state: { multipleFrames: true, displayName: 'below_value1', origin: { fieldIndex: 1, frameIndex: 1 } }, type: FieldType.number, }, { config: {}, values: [4, 5, 6], name: 'below_value2', state: { multipleFrames: true, displayName: 'below_value2', origin: { fieldIndex: 2, frameIndex: 1 } }, type: FieldType.number, }, ], length: 3, }, ], expectedResult: 2, }, ]; }); it('should verify if fill below to is set then builder bands are set', () => { for (const test of tests) { const builder = preparePlotConfigBuilder({ frame: test.alignedFrame, //@ts-ignore theme: getTheme(), timeZones: ['browser'], getTimeRange: jest.fn(), eventBus, sync: jest.fn(), allFrames: test.allFrames, renderers, }); //@ts-ignore expect(builder.bands.length).toBe(test.expectedResult); } }); it('should verify if fill below to is not set then builder bands are empty', () => { tests[0].alignedFrame.fields[1].config.custom.fillBelowTo = undefined; tests[0].allFrames[0].fields[1].config.custom.fillBelowTo = undefined; tests[1].alignedFrame.fields[1].config.custom.fillBelowTo = undefined; tests[1].alignedFrame.fields[2].config.custom.fillBelowTo = undefined; tests[1].allFrames[0].fields[1].config.custom.fillBelowTo = undefined; tests[1].allFrames[0].fields[2].config.custom.fillBelowTo = undefined; tests[0].expectedResult = 0; tests[1].expectedResult = 0; for (const test of tests) { const builder = preparePlotConfigBuilder({ frame: test.alignedFrame, //@ts-ignore theme: getTheme(), timeZones: ['browser'], getTimeRange: jest.fn(), eventBus, sync: jest.fn(), allFrames: test.allFrames, renderers, }); //@ts-ignore expect(builder.bands.length).toBe(test.expectedResult); } }); it('should verify if fill below to is set and field name is overriden then builder bands are set', () => { tests[0].alignedFrame.fields[2].config.displayName = 'newName'; tests[0].alignedFrame.fields[2].state.displayName = 'newName'; tests[0].allFrames[1].fields[1].config.displayName = 'newName'; tests[0].allFrames[1].fields[1].state.displayName = 'newName'; tests[1].alignedFrame.fields[3].config.displayName = 'newName'; tests[1].alignedFrame.fields[3].state.displayName = 'newName'; tests[1].allFrames[1].fields[1].config.displayName = 'newName'; tests[1].allFrames[1].fields[1].state.displayName = 'newName'; for (const test of tests) { const builder = preparePlotConfigBuilder({ frame: test.alignedFrame, //@ts-ignore theme: getTheme(), timeZones: ['browser'], getTimeRange: jest.fn(), eventBus, sync: jest.fn(), allFrames: test.allFrames, renderers, }); //@ts-ignore expect(builder.bands.length).toBe(test.expectedResult); } }); });
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
TimeSeries.tsx
2105 bytes
0644
utils.test.ts
9623 bytes
0644
utils.ts
19715 bytes
0644
N4ST4R_ID | Naxtarrr