Skip to content

Commit fffbae0

Browse files
[TSVB] Add more functional tests for Table (#105060)
* [TSVB] Add more functional tests for Table * Update filter ratio setting numerator denominator function * Refactor set filter ratio numerator and denominator functions in visual_builder_page.ts * Update setFilterRatioOption function
1 parent 67646f8 commit fffbae0

4 files changed

Lines changed: 71 additions & 1 deletion

File tree

src/plugins/vis_type_timeseries/public/application/components/aggs/filter_ratio.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ export const FilterRatioAgg = (props) => {
106106
query={model.numerator}
107107
onChange={handleNumeratorQueryChange}
108108
indexPatterns={[indexPattern]}
109+
data-test-subj="filterRatioNumeratorInput"
109110
/>
110111
</EuiFormRow>
111112
</EuiFlexItem>
@@ -124,6 +125,7 @@ export const FilterRatioAgg = (props) => {
124125
query={model.denominator}
125126
onChange={handleDenominatorQueryChange}
126127
indexPatterns={[indexPattern]}
128+
data-test-subj="filterRatioDenominatorInput"
127129
/>
128130
</EuiFormRow>
129131
</EuiFlexItem>

src/plugins/vis_type_timeseries/public/application/components/query_bar_wrapper.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,15 @@ import { fetchIndexPattern, isStringTypeIndexPattern } from '../../../common/ind
1818

1919
type QueryBarWrapperProps = Pick<QueryStringInputProps, 'query' | 'onChange'> & {
2020
indexPatterns: IndexPatternValue[];
21+
'data-test-subj'?: string;
2122
};
2223

23-
export function QueryBarWrapper({ query, onChange, indexPatterns }: QueryBarWrapperProps) {
24+
export function QueryBarWrapper({
25+
query,
26+
onChange,
27+
indexPatterns,
28+
'data-test-subj': dataTestSubj,
29+
}: QueryBarWrapperProps) {
2430
const { indexPatterns: indexPatternsService } = getDataStart();
2531
const [indexes, setIndexes] = useState<QueryStringInputProps['indexPatterns']>([]);
2632

@@ -58,6 +64,7 @@ export function QueryBarWrapper({ query, onChange, indexPatterns }: QueryBarWrap
5864
onChange={onChange}
5965
indexPatterns={indexes}
6066
{...coreStartContext}
67+
dataTestSubj={dataTestSubj}
6168
/>
6269
);
6370
}

test/functional/apps/visualize/_tsvb_table.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,62 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
7878
const tableData = await visualBuilder.getViewTable();
7979
expect(tableData).to.be(EXPECTED);
8080
});
81+
82+
it('should display correct values for variance aggregation', async () => {
83+
const EXPECTED =
84+
'OS Variance of bytes\nwin 8 2,707,941.822\nwin xp 2,595,612.24\nwin 7 16,055,541.306\nios 6,505,206.56\nosx 1,016,620.667';
85+
await visualBuilder.selectAggType('Variance');
86+
await visualBuilder.setFieldForAggregation('bytes');
87+
88+
const tableData = await visualBuilder.getViewTable();
89+
expect(tableData).to.be(EXPECTED);
90+
});
91+
92+
it('should display correct values for filter ratio aggregation with numerator and denominator', async () => {
93+
const EXPECTED = 'OS Filter Ratio\nwin 8 2\nwin xp 0\nwin 7 3\nios 0\nosx 0';
94+
await visualBuilder.selectAggType('Filter Ratio');
95+
await visualBuilder.setFilterRatioOption('Numerator', 'extension.raw : "css"');
96+
await visualBuilder.setFilterRatioOption('Denominator', 'bytes <= 3000');
97+
await visChart.waitForVisualizationRenderingStabilized();
98+
99+
const tableData = await visualBuilder.getViewTable();
100+
expect(tableData).to.be(EXPECTED);
101+
});
102+
103+
it('should display correct values for average aggregation with last value time range mode', async () => {
104+
const EXPECTED =
105+
'OS Average of machine.ram\nwin 8 13,958,643,712\nwin xp 14,602,888,806.4\nwin 7 14,048,122,197.333\nios 11,166,914,969.6\nosx 20,401,094,656';
106+
await visualBuilder.selectAggType('Average');
107+
await visualBuilder.setFieldForAggregation('machine.ram');
108+
109+
const tableData = await visualBuilder.getViewTable();
110+
expect(tableData).to.be(EXPECTED);
111+
});
112+
113+
it('should display correct values for sum aggregation with entire time range mode', async () => {
114+
const EXPECTED =
115+
'OS Sum of memory\nwin 8 1,121,160\nwin xp 1,182,800\nwin 7 1,443,600\nios 971,360\nosx 858,480';
116+
await visualBuilder.selectAggType('Sum');
117+
await visualBuilder.setFieldForAggregation('memory');
118+
await visualBuilder.clickPanelOptions('table');
119+
await visualBuilder.setMetricsDataTimerangeMode('Entire time range');
120+
121+
const tableData = await visualBuilder.getViewTable();
122+
expect(tableData).to.be(EXPECTED);
123+
});
124+
125+
it('should display correct values for math aggregation', async () => {
126+
const EXPECTED = 'OS Math\nwin 8 2,937\nwin xp 460\nwin 7 2,997\nios 1,095\nosx 1,724';
127+
await visualBuilder.selectAggType('Min');
128+
await visualBuilder.setFieldForAggregation('bytes');
129+
await visualBuilder.createNewAgg();
130+
await visualBuilder.selectAggType('math', 1);
131+
await visualBuilder.fillInVariable('test', 'Min');
132+
await visualBuilder.fillInExpression('params.test + 1');
133+
134+
const tableData = await visualBuilder.getViewTable();
135+
expect(tableData).to.be(EXPECTED);
136+
});
81137
});
82138
});
83139
}

test/functional/page_objects/visual_builder_page.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,4 +727,9 @@ export class VisualBuilderPageObject extends FtrService {
727727
await this.comboBox.set('topHitOrderByFieldSelect', timeField);
728728
});
729729
}
730+
731+
public async setFilterRatioOption(optionType: 'Numerator' | 'Denominator', query: string) {
732+
const optionInput = await this.testSubjects.find(`filterRatio${optionType}Input`);
733+
await optionInput.type(query);
734+
}
730735
}

0 commit comments

Comments
 (0)