Skip to content

Commit 363750d

Browse files
author
jpaten
committed
test: made tests not dependent on tab order and refactored constants to constants.ts (#4078)
1 parent a57a1d4 commit 363750d

12 files changed

+705
-185
lines changed

Diff for: explorer/e2e/anvil-catalog/anvilcatalog-select-tabs.spec.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@ test("Expect the checkboxes in the 'Edit Columns' menu to add those columns to t
1212
await testSelectableColumns(page, tab);
1313
});
1414

15-
test("Expect the checkboxes for preselected columns in the 'Edit Columns' menu to be checked and disabled on the consortia tab", async ({
15+
test("Expect the checkboxes for preselected columns in the 'Edit Columns' menu to be checked and disabled on the Consortia tab", async ({
1616
page,
1717
}) => {
1818
const tab = ANVIL_CATALOG_TABS.CONSORTIA;
1919
await testPreSelectedColumns(page, tab);
2020
});
2121

22-
test("Expect the checkboxes for preselected columns in the 'Edit Columns' menu to be checked and disabled on the studies tab", async ({
22+
test("Expect the checkboxes for preselected columns in the 'Edit Columns' menu to be checked and disabled on the Studies tab", async ({
2323
page,
2424
}) => {
2525
const tab = ANVIL_CATALOG_TABS.STUDIES;
2626
await testPreSelectedColumns(page, tab);
2727
});
2828

29-
test("Expect the checkboxes for preselected columns in the 'Edit Columns' menu to be checked and disabled on the workspaces tab", async ({
29+
test("Expect the checkboxes for preselected columns in the 'Edit Columns' menu to be checked and disabled on the Workspaces tab", async ({
3030
page,
3131
}) => {
3232
const tab = ANVIL_CATALOG_TABS.WORKSPACES;

Diff for: explorer/e2e/anvil-catalog/anvilcatalog-sort.spec.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
11
import { test } from "@playwright/test";
22
import { testSortCatalog } from "../testFunctions";
33
import { ANVIL_CATALOG_TABS } from "./anvilcatalog-tabs";
4-
4+
//TODO: handle boolean return value and fail if it's false for each test
55
test("On the Consortia tab, expect clicking the column header (the sort button) to keep the first element of the column visible", async ({
66
page,
77
}) => {
8-
await testSortCatalog(page, ANVIL_CATALOG_TABS.CONSORTIA);
8+
const testResult = await testSortCatalog(page, ANVIL_CATALOG_TABS.CONSORTIA);
9+
if (!testResult) {
10+
test.fail();
11+
}
912
});
1013

1114
test("On the Studies tab, expect clicking the column header (the sort button) to keep the first element of the column visible", async ({
1215
page,
1316
}) => {
14-
await testSortCatalog(page, ANVIL_CATALOG_TABS.STUDIES);
17+
const testResult = await testSortCatalog(page, ANVIL_CATALOG_TABS.STUDIES);
18+
if (!testResult) {
19+
test.fail();
20+
}
1521
});
1622

1723
test("On the Workspaces tab, expect clicking the column header (the sort button) to keep the first element of the column visible", async ({
1824
page,
1925
}) => {
20-
await testSortCatalog(page, ANVIL_CATALOG_TABS.WORKSPACES);
26+
const testResult = await testSortCatalog(page, ANVIL_CATALOG_TABS.WORKSPACES);
27+
if (!testResult) {
28+
test.fail();
29+
}
2130
});

Diff for: explorer/e2e/anvil-catalog/anvilcatalog-tabs-buttons.spec.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { test } from "@playwright/test";
22
import { testTab } from "../testFunctions";
33
import { ANVIL_CATALOG_TABS } from "./anvilcatalog-tabs";
44

5-
test("Expect clicking the consortia tab to go to the correct url and to show all of the relevant columns when selected", async ({
5+
test("Expect clicking the Consortia tab from the Studies tab to go to the correct url and to show all of the relevant columns when selected", async ({
66
page,
77
}) => {
88
await testTab(page, ANVIL_CATALOG_TABS.STUDIES, ANVIL_CATALOG_TABS.CONSORTIA);
99
});
1010

11-
test("Expect clicking the studies tab to go to the correct url and to show all of the relevant columns when selected", async ({
11+
test("Expect clicking the Studies tab from the Workspaces tab to go to the correct url and to show all of the relevant columns when selected", async ({
1212
page,
1313
}) => {
1414
await testTab(
@@ -18,7 +18,7 @@ test("Expect clicking the studies tab to go to the correct url and to show all o
1818
);
1919
});
2020

21-
test("Expect clicking the workspaces tab to go to the correct url and to show all of the relevant columns when selected", async ({
21+
test("Expect clicking the Workspaces tab from the Consortia tab to go to the correct url and to show all of the relevant columns when selected", async ({
2222
page,
2323
}) => {
2424
await testTab(

Diff for: explorer/e2e/anvil-catalog/anvilcatalog-tabs.ts

+14-40
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,33 @@
11
/* eslint-disable sonarjs/no-duplicate-string -- ignoring duplicate strings here */
22
import { AnvilCatalogTabCollection, TabDescription } from "../testInterfaces";
3+
import {
4+
ANVIL_CATALOG_CONSORTIA_PRESELECTED_COLUMNS_BY_NAME,
5+
ANVIL_CATALOG_CONSORTIA_SELECTABLE_COLUMNS_BY_NAME,
6+
ANVIL_CATALOG_STUDIES_PRESELECTED_COLUMNS_BY_NAME,
7+
ANVIL_CATALOG_STUDIES_SELECTABLE_COLUMNS_BY_NAME,
8+
ANVIL_CATALOG_WORKSPACES_PRESELECTED_COLUMNS_BY_NAME,
9+
ANVIL_CATALOG_WORKSPACES_SELECTABLE_COLUMNS_BY_NAME,
10+
} from "./constants";
311

412
export const ANVIL_CATALOG_TABS: AnvilCatalogTabCollection = {
513
CONSORTIA: {
614
emptyFirstColumn: false,
7-
preselectedColumns: [
8-
{ name: "Consortium", sortable: true },
9-
{ name: "dbGap Id", sortable: true },
10-
{ name: "Consent Codes", sortable: true },
11-
{ name: "Disease (indication)", sortable: true },
12-
{ name: "Data Type", sortable: true },
13-
{ name: "Study Design", sortable: true },
14-
{ name: "Participants", sortable: true },
15-
{ name: "Size (TB)", sortable: true },
16-
],
17-
selectableColumns: [
18-
{ name: "Study", sortable: true },
19-
{ name: "Workspaces", sortable: true },
20-
],
15+
preselectedColumns: ANVIL_CATALOG_CONSORTIA_PRESELECTED_COLUMNS_BY_NAME,
16+
selectableColumns: ANVIL_CATALOG_CONSORTIA_SELECTABLE_COLUMNS_BY_NAME,
2117
tabName: "Consortia",
2218
url: "/data/consortia",
2319
},
2420
STUDIES: {
2521
emptyFirstColumn: false,
26-
preselectedColumns: [
27-
{ name: "Study", sortable: true },
28-
{ name: "dbGap Id", sortable: true },
29-
{ name: "Consortium", sortable: true },
30-
{ name: "Consent Codes", sortable: true },
31-
{ name: "Disease (indication)", sortable: true },
32-
{ name: "Data Type", sortable: true },
33-
{ name: "Study Design", sortable: true },
34-
{ name: "Workspaces", sortable: true },
35-
{ name: "Participants", sortable: true },
36-
{ name: "Size (TB)", sortable: true },
37-
],
38-
selectableColumns: [],
22+
preselectedColumns: ANVIL_CATALOG_STUDIES_PRESELECTED_COLUMNS_BY_NAME,
23+
selectableColumns: ANVIL_CATALOG_STUDIES_SELECTABLE_COLUMNS_BY_NAME,
3924
tabName: "Studies",
4025
url: "/data/studies",
4126
},
4227
WORKSPACES: {
4328
emptyFirstColumn: false,
44-
preselectedColumns: [
45-
{ name: "Consortium", sortable: true },
46-
{ name: "Terra Workspace", sortable: true },
47-
{ name: "Study", sortable: true },
48-
{ name: "dbGap Id", sortable: true },
49-
{ name: "Consent Code", sortable: true },
50-
{ name: "Disease (indication)", sortable: true },
51-
{ name: "Data Type", sortable: true },
52-
{ name: "Study Design", sortable: false },
53-
{ name: "Participants", sortable: true },
54-
{ name: "Size (TB)", sortable: true },
55-
],
56-
selectableColumns: [],
29+
preselectedColumns: ANVIL_CATALOG_WORKSPACES_PRESELECTED_COLUMNS_BY_NAME,
30+
selectableColumns: ANVIL_CATALOG_WORKSPACES_SELECTABLE_COLUMNS_BY_NAME,
5731
tabName: "Workspaces",
5832
url: "/data/workspaces",
5933
},

Diff for: explorer/e2e/anvil-catalog/constants.ts

+209
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
export const ANVIL_CATALOG_COLUMN_NAMES = {
2+
CONSENT_CODE: "Consent Code",
3+
CONSENT_CODES: "Consent Codes",
4+
CONSORTIUM: "Consortium",
5+
DATA_TYPE: "Data Type",
6+
DBGAP_ID: "dbGap Id",
7+
DISEASE_INDICATION: "Disease (indication)",
8+
PARTICIPANTS: "Participants",
9+
SIZE_TB: "Size (TB)",
10+
STUDY: "Study",
11+
STUDY_DESIGN: "Study Design",
12+
TERRA_WORKSPACE: "Terra Workspace",
13+
WORKSPACES: "Workspaces",
14+
};
15+
16+
export const PLURALIZED_METADATA_LABEL = {
17+
[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM]: "networks",
18+
[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID]: "dbGap ids",
19+
[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES]: "consent codes",
20+
[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION]: "diseases",
21+
[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE]: "data types",
22+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN]: "study designs",
23+
[ANVIL_CATALOG_COLUMN_NAMES.WORKSPACES]: "workspaces",
24+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY]: "studies",
25+
[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODE]: "consent codes",
26+
[ANVIL_CATALOG_COLUMN_NAMES.TERRA_WORKSPACE]: "workspaces",
27+
};
28+
29+
export const ANVIL_CATALOG_CONSORTIA_PRESELECTED_COLUMNS_BY_NAME = {
30+
[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM]: {
31+
name: ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM,
32+
pluralizedLabel:
33+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM],
34+
sortable: true,
35+
},
36+
[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID]: {
37+
name: ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID,
38+
pluralizedLabel:
39+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID],
40+
sortable: true,
41+
},
42+
[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES]: {
43+
name: ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES,
44+
pluralizedLabel:
45+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES],
46+
sortable: true,
47+
},
48+
[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION]: {
49+
name: ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION,
50+
pluralizedLabel:
51+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION],
52+
sortable: true,
53+
},
54+
[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE]: {
55+
name: ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE,
56+
pluralizedLabel:
57+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE],
58+
sortable: true,
59+
},
60+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN]: {
61+
name: ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN,
62+
pluralizedLabel:
63+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN],
64+
sortable: true,
65+
},
66+
[ANVIL_CATALOG_COLUMN_NAMES.PARTICIPANTS]: {
67+
name: ANVIL_CATALOG_COLUMN_NAMES.PARTICIPANTS,
68+
sortable: true,
69+
},
70+
[ANVIL_CATALOG_COLUMN_NAMES.SIZE_TB]: {
71+
name: ANVIL_CATALOG_COLUMN_NAMES.SIZE_TB,
72+
sortable: true,
73+
},
74+
};
75+
76+
export const ANVIL_CATALOG_CONSORTIA_SELECTABLE_COLUMNS_BY_NAME = {
77+
Study: {
78+
name: "Study",
79+
pluralizedLabel: "studies",
80+
sortable: true,
81+
},
82+
Workspaces: {
83+
name: "Workspaces",
84+
pluralizedLabel: "workspaces",
85+
sortable: true,
86+
},
87+
};
88+
89+
export const ANVIL_CATALOG_STUDIES_PRESELECTED_COLUMNS_BY_NAME = {
90+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY]: {
91+
name: ANVIL_CATALOG_COLUMN_NAMES.STUDY,
92+
pluralizedLabel:
93+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.STUDY],
94+
sortable: true,
95+
},
96+
[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID]: {
97+
name: ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID,
98+
pluralizedLabel:
99+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID],
100+
sortable: true,
101+
},
102+
[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM]: {
103+
name: ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM,
104+
pluralizedLabel:
105+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM],
106+
sortable: true,
107+
},
108+
[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES]: {
109+
name: ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES,
110+
pluralizedLabel:
111+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODES],
112+
sortable: true,
113+
},
114+
[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION]: {
115+
name: ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION,
116+
pluralizedLabel:
117+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION],
118+
sortable: true,
119+
},
120+
[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE]: {
121+
name: ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE,
122+
pluralizedLabel:
123+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE],
124+
sortable: true,
125+
},
126+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN]: {
127+
name: ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN,
128+
pluralizedLabel:
129+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN],
130+
sortable: true,
131+
},
132+
[ANVIL_CATALOG_COLUMN_NAMES.PARTICIPANTS]: {
133+
name: ANVIL_CATALOG_COLUMN_NAMES.PARTICIPANTS,
134+
sortable: true,
135+
},
136+
[ANVIL_CATALOG_COLUMN_NAMES.SIZE_TB]: {
137+
name: ANVIL_CATALOG_COLUMN_NAMES.SIZE_TB,
138+
sortable: true,
139+
},
140+
[ANVIL_CATALOG_COLUMN_NAMES.WORKSPACES]: {
141+
name: ANVIL_CATALOG_COLUMN_NAMES.WORKSPACES,
142+
pluralizedLabel:
143+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.WORKSPACES],
144+
sortable: true,
145+
},
146+
};
147+
148+
export const ANVIL_CATALOG_STUDIES_SELECTABLE_COLUMNS_BY_NAME = {};
149+
150+
export const ANVIL_CATALOG_WORKSPACES_PRESELECTED_COLUMNS_BY_NAME = {
151+
[ANVIL_CATALOG_COLUMN_NAMES.TERRA_WORKSPACE]: {
152+
name: ANVIL_CATALOG_COLUMN_NAMES.TERRA_WORKSPACE,
153+
pluralizedLabel:
154+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.TERRA_WORKSPACE],
155+
sortable: true,
156+
},
157+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY]: {
158+
name: ANVIL_CATALOG_COLUMN_NAMES.STUDY,
159+
pluralizedLabel:
160+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.STUDY],
161+
sortable: true,
162+
},
163+
[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID]: {
164+
name: ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID,
165+
pluralizedLabel:
166+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DBGAP_ID],
167+
sortable: true,
168+
},
169+
[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM]: {
170+
name: ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM,
171+
pluralizedLabel:
172+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.CONSORTIUM],
173+
sortable: true,
174+
},
175+
[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODE]: {
176+
name: ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODE,
177+
pluralizedLabel:
178+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.CONSENT_CODE],
179+
sortable: true,
180+
},
181+
[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION]: {
182+
name: ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION,
183+
pluralizedLabel:
184+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DISEASE_INDICATION],
185+
sortable: true,
186+
},
187+
[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE]: {
188+
name: ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE,
189+
pluralizedLabel:
190+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.DATA_TYPE],
191+
sortable: true,
192+
},
193+
[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN]: {
194+
name: ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN,
195+
pluralizedLabel:
196+
PLURALIZED_METADATA_LABEL[ANVIL_CATALOG_COLUMN_NAMES.STUDY_DESIGN],
197+
sortable: true,
198+
},
199+
[ANVIL_CATALOG_COLUMN_NAMES.PARTICIPANTS]: {
200+
name: ANVIL_CATALOG_COLUMN_NAMES.PARTICIPANTS,
201+
sortable: true,
202+
},
203+
[ANVIL_CATALOG_COLUMN_NAMES.SIZE_TB]: {
204+
name: ANVIL_CATALOG_COLUMN_NAMES.SIZE_TB,
205+
sortable: true,
206+
},
207+
};
208+
209+
export const ANVIL_CATALOG_WORKSPACES_SELECTABLE_COLUMNS_BY_NAME = {};

Diff for: explorer/e2e/anvil/anvil-backpages.spec.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@ test("Check that information on the backpages matches information in the data ta
2525
page,
2626
}) => {
2727
test.setTimeout(120000);
28-
await testBackpageDetails(page, ANVIL_TABS.DATASETS);
28+
const testResult = await testBackpageDetails(page, ANVIL_TABS.DATASETS);
29+
if (!testResult) {
30+
test.fail();
31+
}
2932
});

0 commit comments

Comments
 (0)