mirror of https://github.com/grafana/grafana
Grafana live: Add tests and missing code to amendTable (#89031)
* Grafana live: Add tests and missing code to amendTable * Bettererpull/89179/head
parent
89dd710ca9
commit
45c601acc4
@ -0,0 +1,123 @@ |
|||||||
|
import { Table, amendTable } from "./amendTimeSeries"; |
||||||
|
|
||||||
|
describe('amendTable', () => { |
||||||
|
it('should append nextTable when there is no overlap (nextTable after prevTable)', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[1, 2, 5], |
||||||
|
['a', 'b', 'e'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[6, 7, 8], |
||||||
|
['f', 'g', 'h'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual([ |
||||||
|
[1, 2, 5, 6, 7, 8], |
||||||
|
['a', 'b', 'e', 'f', 'g', 'h'], |
||||||
|
]); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should prepend nextTable when there is no overlap (nextTable before prevTable)', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[3, 4, 5], |
||||||
|
['c', 'd', 'e'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[1, 2], |
||||||
|
['a', 'b'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual([ |
||||||
|
[1, 2, 3, 4, 5], |
||||||
|
['a', 'b', 'c', 'd', 'e'], |
||||||
|
]); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should fully replace prevTable when nextTable covers entire range', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[3, 4, 5], |
||||||
|
['c', 'd', 'e'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[1, 2, 3, 4, 5, 6], |
||||||
|
['a', 'b', 'c', 'd', 'e', 'f'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual(nextTable); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should partially replace prevTable when nextTable is within range', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[1, 2, 3, 4, 5], |
||||||
|
['a', 'b', 'c', 'd', 'e'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[3, 4], |
||||||
|
['x', 'y'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual([ |
||||||
|
[1, 2, 3, 4, 5], |
||||||
|
['a', 'b', 'x', 'y', 'e'], |
||||||
|
]); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should append nextTable with overlap', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[1, 2, 5], |
||||||
|
['a', 'b', 'e'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[2, 3, 6], |
||||||
|
['b', 'c', 'f'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual([ |
||||||
|
[1, 2, 3, 6], |
||||||
|
['a', 'b', 'c', 'f'], |
||||||
|
]); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should prepend nextTable with overlap', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[3, 4, 5], |
||||||
|
['c', 'd', 'e'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[1, 4], |
||||||
|
['a', 'd'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual([ |
||||||
|
[1, 4, 5], |
||||||
|
['a', 'd', 'e'], |
||||||
|
]); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should handle empty prevTable', () => { |
||||||
|
const prevTable: Table = [[]]; |
||||||
|
const nextTable: Table = [ |
||||||
|
[1, 2, 3], |
||||||
|
['a', 'b', 'c'], |
||||||
|
]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual(nextTable); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should handle empty nextTable', () => { |
||||||
|
const prevTable: Table = [ |
||||||
|
[1, 2, 3], |
||||||
|
['a', 'b', 'c'], |
||||||
|
]; |
||||||
|
const nextTable: Table = [[]]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual(prevTable); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should handle both tables being empty', () => { |
||||||
|
const prevTable: Table = [[]]; |
||||||
|
const nextTable: Table = [[]]; |
||||||
|
const result = amendTable(prevTable, nextTable); |
||||||
|
expect(result).toEqual([[]]); |
||||||
|
}); |
||||||
|
}); |
Loading…
Reference in new issue