fix(explore): Time comparison in Mixed Chart in GENERIC_CHART_AXES not working (#22945)

This commit is contained in:
Kamil Gabryjelski 2023-02-02 14:06:30 +01:00 committed by GitHub
parent b35190783c
commit ed7b3533bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 56 additions and 14 deletions

View File

@ -67,11 +67,8 @@ export default function buildQuery(formData: QueryFormData) {
fd,
queryObject,
)
? timeComparePivotOperator(fd, queryObject)
: pivotOperator(fd, {
...queryObject,
columns: fd.groupby,
});
? timeComparePivotOperator(fd, { ...queryObject, columns: fd.groupby })
: pivotOperator(fd, { ...queryObject, columns: fd.groupby });
const tmpQueryObject = {
...queryObject,

View File

@ -198,6 +198,21 @@ test('should compile AA in query A', () => {
// time comparison
expect(query.time_offsets).toEqual(['1 years ago']);
// pivot
expect(
query.post_processing?.find(operator => operator?.operation === 'pivot'),
).toEqual({
operation: 'pivot',
options: {
index: ['__timestamp'],
columns: ['foo'],
drop_missing_columns: false,
aggregates: {
'sum(sales)': { operator: 'mean' },
'sum(sales)__1 years ago': { operator: 'mean' },
},
},
});
// cumsum
expect(
// prettier-ignore
@ -384,20 +399,14 @@ test('should convert a queryObject with x-axis although FF is disabled', () => {
});
test("shouldn't convert a queryObject with axis although FF is enabled", () => {
let windowSpy: any;
beforeAll(() => {
const windowSpy = jest
.spyOn(window, 'window', 'get')
// @ts-ignore
windowSpy = jest.spyOn(window, 'window', 'get').mockImplementation(() => ({
.mockImplementation(() => ({
featureFlags: {
GENERIC_CHART_AXES: true,
},
}));
});
afterAll(() => {
windowSpy.mockRestore();
});
const { queries } = buildQuery(formDataMixedChart);
expect(queries[0]).toEqual(
@ -468,4 +477,40 @@ test("shouldn't convert a queryObject with axis although FF is enabled", () => {
],
}),
);
windowSpy.mockRestore();
});
test('ensure correct pivot columns with GENERIC_CHART_AXES enabled', () => {
const windowSpy = jest
.spyOn(window, 'window', 'get')
// @ts-ignore
.mockImplementation(() => ({
featureFlags: {
GENERIC_CHART_AXES: true,
},
}));
const query = buildQuery({ ...formDataMixedChartWithAA, x_axis: 'ds' })
.queries[0];
expect(query.time_offsets).toEqual(['1 years ago']);
// pivot
expect(
query.post_processing?.find(operator => operator?.operation === 'pivot'),
).toEqual({
operation: 'pivot',
options: {
index: ['ds'],
columns: ['foo'],
drop_missing_columns: false,
aggregates: {
'sum(sales)': { operator: 'mean' },
'sum(sales)__1 years ago': { operator: 'mean' },
},
},
});
windowSpy.mockRestore();
});