Bring anomalies-table no-sql-anom tests back
Bug: 454590264
I replaced anomalies-table unit tests, but since prod doesn't use sql
anomalies yet, we need to keep both versions of tests.
Tests were altered in this change:
I1e909d3c1e30d97ce234dcc22ff8b5aaf8bfb17a
Change-Id: I5f486d83a6785aacbe8f20064be59aa313535e20
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/1083896
Commit-Queue: Marcin Mordecki <mordeckimarcin@google.com>
Reviewed-by: Sergei Rudenkov <sergeirudenkov@google.com>
diff --git a/perf/modules/anomalies-table-sk/anomalies-table-sk_test.ts b/perf/modules/anomalies-table-sk/anomalies-table-sk_test.ts
index 75758ce..b2eb481 100644
--- a/perf/modules/anomalies-table-sk/anomalies-table-sk_test.ts
+++ b/perf/modules/anomalies-table-sk/anomalies-table-sk_test.ts
@@ -14,7 +14,8 @@
let element: AnomaliesTableSk;
beforeEach(() => {
- config.fetchAnomaliesFromSql = true;
+ // TODO(b/454590264) For now, sql anomalies are disabled. Change to true in the future.
+ config.fetchAnomaliesFromSql = false;
window.perf = {
instance_url: '',
commit_range_url: 'http://example.com/range/{begin}/{end}',
@@ -61,6 +62,7 @@
});
afterEach(() => {
+ // TODO(b/454590264) For now, sql anomalies are disabled. Change to true in the future.
config.fetchAnomaliesFromSql = false;
fetchMock.restore();
sinon.restore();
@@ -123,7 +125,38 @@
});
describe('open anomaly group report page', () => {
- it('navigates to anomaly group report page', async () => {
+ it('navigates to anomaly group report page when sql anoms are disabled', async () => {
+ const openSpy = sinon.spy(window, 'open');
+ fetchMock.post('/_/shortcut/update', { id: 'test_shortcut' });
+
+ const anomalies = [
+ dummyAnomaly('1', 12345, 100, 200, 'master/bot/suite/test1'),
+ dummyAnomaly('2', 12345, 150, 250, 'master/bot/suite/test2'),
+ dummyAnomaly('3', 0, 300, 400, 'master/bot/suite/test3'),
+ dummyAnomaly('4', 0, 350, 450, 'master/bot/suite/test4'),
+ dummyAnomaly('5', 0, 500, 600, 'master/bot/suite2/test5'),
+ dummyAnomaly('6', 0, 700, 800, 'master/bot/suite2/test6'),
+ ];
+ element.anomalyList = anomalies;
+ await element.populateTable(anomalies);
+
+ for (const group of element.anomalyGroups) {
+ const summaryRowCheckboxId = element.getGroupId(group);
+ const groupCheckbox = element.querySelector<HTMLInputElement>(
+ `input[id="anomaly-row-${summaryRowCheckboxId}"]`
+ );
+ groupCheckbox!.checked = true;
+ }
+
+ await element.openAnomalyGroupReportPage();
+
+ assert.isTrue(openSpy.calledWith('/u/?sid=test_sid', '_blank'));
+ assert.isTrue(openSpy.calledThrice);
+ });
+
+ it('navigates to anomaly group report page when sql anomalies are enabled', async () => {
+ config.fetchAnomaliesFromSql = true;
+
const openSpy = sinon.spy(window, 'open');
fetchMock.post('/_/shortcut/update', { id: 'test_shortcut' });
@@ -171,7 +204,33 @@
assert.isTrue(openSpy.calledOnce);
});
- it('opens short multi anomaly group with anomalyIDs', async () => {
+ it('opens multi anomaly group with sid when sql anoms are disabled', async () => {
+ const openSpy = sinon.spy(window, 'open');
+ fetchMock.post('/_/shortcut/update', { id: 'test_shortcut' });
+
+ const anomalies = [
+ dummyAnomaly('1', 12345, 100, 200, 'master/bot/suite/test1'),
+ dummyAnomaly('2', 12345, 150, 250, 'master/bot/suite/test2'),
+ ];
+ element.anomalyList = anomalies;
+ await element.populateTable(anomalies);
+
+ const group = element.anomalyGroups[0];
+ const summaryRowCheckboxId = element.getGroupId(group);
+ const groupCheckbox = element.querySelector<HTMLInputElement>(
+ `input[id="anomaly-row-${summaryRowCheckboxId}"]`
+ );
+ groupCheckbox!.checked = true;
+
+ await element.openAnomalyGroupReportPage();
+
+ assert.isTrue(openSpy.calledWith('/u/?sid=test_sid', '_blank'));
+ assert.isTrue(openSpy.calledOnce);
+ });
+
+ it('opens short multi anomaly group with anomalyIDs using sql anomalies', async () => {
+ config.fetchAnomaliesFromSql = true;
+
const openSpy = sinon.spy(window, 'open');
fetchMock.post('/_/shortcut/update', { id: 'test_shortcut' });
@@ -195,7 +254,41 @@
assert.isTrue(openSpy.calledOnce);
});
- it('opens both single and multi anomaly groups', async () => {
+ it('opens both single and multi anomaly groups when sql anoms are disabled', async () => {
+ const openSpy = sinon.spy(window, 'open');
+ fetchMock.post('/_/shortcut/update', { id: 'test_shortcut' });
+
+ const anomalies = [
+ dummyAnomaly('1', 12345, 100, 200, 'master/bot/suite/test1'),
+ dummyAnomaly('2', 12345, 150, 250, 'master/bot/suite/test2'),
+ dummyAnomaly('3', 54321, 100, 200, 'master/bot/suite/test3'),
+ ];
+ element.anomalyList = anomalies;
+ await element.populateTable(anomalies);
+
+ // Check multi-anomaly group.
+ const multiAnomalyGroup = element.anomalyGroups.find((g) => g.anomalies.length > 1)!;
+ const summaryRowCheckboxId = element.getGroupId(multiAnomalyGroup);
+ const groupCheckbox = element.querySelector<HTMLInputElement>(
+ `input[id="anomaly-row-${summaryRowCheckboxId}"]`
+ )!;
+ groupCheckbox.checked = true;
+
+ // Check single-anomaly group.
+ const singleAnomalyCheckbox =
+ element.querySelector<HTMLInputElement>(`input[id="anomaly-row-3"]`)!;
+ singleAnomalyCheckbox.checked = true;
+
+ await element.openAnomalyGroupReportPage();
+
+ assert.isTrue(openSpy.calledTwice);
+ assert.isTrue(openSpy.calledWith('/u/?sid=test_sid', '_blank'));
+ assert.isTrue(openSpy.calledWith('/u/?anomalyIDs=3', '_blank'));
+ });
+
+ it('opens both single and multi anomaly groups using sql anomalies', async () => {
+ config.fetchAnomaliesFromSql = true;
+
const openSpy = sinon.spy(window, 'open');
fetchMock.post('/_/shortcut/update', { id: 'test_shortcut' });