Skip to content

Commit d76cb14

Browse files
authored
test(e2e): scope DQ permissions spec helpers to fixture (#27238)
Initialize PolicyClass, RolesClass, UserClass, and TableClass inside the Playwright worker fixture instead of module scope to avoid cross-worker shared state (collate#3610). Made-with: Cursor
1 parent df131ce commit d76cb14

1 file changed

Lines changed: 77 additions & 97 deletions

File tree

openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/DataQualityPermissions.spec.ts

Lines changed: 77 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,11 @@ import {
2424
TEST_SUITE_POLICY,
2525
VIEW_ALL_TEST_CASE_POLICY,
2626
} from '../../../constant/dataQualityPermissions';
27-
import { PolicyClass } from '../../../support/access-control/PoliciesClass';
28-
import { RolesClass } from '../../../support/access-control/RolesClass';
2927
import { TableClass } from '../../../support/entity/TableClass';
3028
import { UserClass } from '../../../support/user/UserClass';
3129
import { performAdminLogin } from '../../../utils/admin';
3230
import { redirectToHomePage, uuid } from '../../../utils/common';
3331
import { waitForAllLoadersToDisappear } from '../../../utils/entity';
34-
import { setupUserWithPolicy } from '../../../utils/permission';
3532
import {
3633
visitTestSuiteDetailsPage,
3734
visitTestSuitesPage,
@@ -41,51 +38,21 @@ import {
4138
waitForTestCaseListResponse,
4239
} from '../../../utils/testCases';
4340

44-
// --- Objects ---
45-
const createPolicy = new PolicyClass();
46-
const createRole = new RolesClass();
47-
const createUser = new UserClass();
41+
let createUser: UserClass;
42+
let deleteUser: UserClass;
43+
let suiteUser: UserClass;
44+
let viewBasicUser: UserClass;
45+
let tableCreateTestsUser: UserClass;
46+
let editTestCaseUser: UserClass;
47+
let tableEditTestsUser: UserClass;
48+
let editTestsOnTcUser: UserClass;
49+
let viewAllTcUser: UserClass;
50+
let suiteEditOnlyUser: UserClass;
4851

49-
const deletePolicy = new PolicyClass();
50-
const deleteRole = new RolesClass();
51-
const deleteUser = new UserClass();
52+
let dataConsumerUser: UserClass;
53+
let dataStewardUser: UserClass;
5254

53-
const suitePolicy = new PolicyClass();
54-
const suiteRole = new RolesClass();
55-
const suiteUser = new UserClass();
56-
57-
const viewBasicPolicy = new PolicyClass();
58-
const viewBasicRole = new RolesClass();
59-
const viewBasicUser = new UserClass();
60-
61-
const tableCreateTestsPolicy = new PolicyClass();
62-
const tableCreateTestsRole = new RolesClass();
63-
const tableCreateTestsUser = new UserClass();
64-
65-
const editTestCasePolicy = new PolicyClass();
66-
const editTestCaseRole = new RolesClass();
67-
const editTestCaseUser = new UserClass();
68-
69-
const tableEditTestsPolicy = new PolicyClass();
70-
const tableEditTestsRole = new RolesClass();
71-
const tableEditTestsUser = new UserClass();
72-
73-
const editTestsOnTcPolicy = new PolicyClass();
74-
const editTestsOnTcRole = new RolesClass();
75-
const editTestsOnTcUser = new UserClass();
76-
77-
const viewAllTcPolicy = new PolicyClass();
78-
const viewAllTcRole = new RolesClass();
79-
const viewAllTcUser = new UserClass();
80-
81-
const suiteEditOnlyPolicy = new PolicyClass();
82-
const suiteEditOnlyRole = new RolesClass();
83-
const suiteEditOnlyUser = new UserClass();
84-
85-
const dataConsumerUser = new UserClass();
86-
const dataStewardUser = new UserClass();
87-
88-
const table = new TableClass();
55+
let table: TableClass;
8956

9057
// --- Fixtures ---
9158
const test = base.extend<{
@@ -190,6 +157,20 @@ test.describe(
190157

191158
test.beforeAll(async ({ browser }) => {
192159
test.slow();
160+
createUser = new UserClass();
161+
deleteUser = new UserClass();
162+
suiteUser = new UserClass();
163+
viewBasicUser = new UserClass();
164+
tableCreateTestsUser = new UserClass();
165+
editTestCaseUser = new UserClass();
166+
tableEditTestsUser = new UserClass();
167+
editTestsOnTcUser = new UserClass();
168+
viewAllTcUser = new UserClass();
169+
suiteEditOnlyUser = new UserClass();
170+
dataConsumerUser = new UserClass();
171+
dataStewardUser = new UserClass();
172+
table = new TableClass();
173+
193174
const { apiContext, afterAction } = await performAdminLogin(browser);
194175

195176
await table.create(apiContext);
@@ -241,76 +222,75 @@ test.describe(
241222
],
242223
});
243224

244-
// 3. Setup Custom Roles
245-
await setupUserWithPolicy(
225+
// 3. Setup custom policies via team (setCustomRulePolicy)
226+
await createUser.create(apiContext, false);
227+
await createUser.setCustomRulePolicy(
246228
apiContext,
247-
createUser,
248-
createPolicy,
249-
createRole,
250-
CREATE_TEST_CASE_POLICY
229+
CREATE_TEST_CASE_POLICY,
230+
'PW-DQ-create-test-case'
251231
);
252-
await setupUserWithPolicy(
232+
233+
await deleteUser.create(apiContext, false);
234+
await deleteUser.setCustomRulePolicy(
253235
apiContext,
254-
deleteUser,
255-
deletePolicy,
256-
deleteRole,
257-
DELETE_TEST_CASE_POLICY
236+
DELETE_TEST_CASE_POLICY,
237+
'PW-DQ-delete-test-case'
258238
);
259-
await setupUserWithPolicy(
239+
240+
await suiteUser.create(apiContext, false);
241+
await suiteUser.setCustomRulePolicy(
260242
apiContext,
261-
suiteUser,
262-
suitePolicy,
263-
suiteRole,
264-
TEST_SUITE_POLICY
243+
TEST_SUITE_POLICY,
244+
'PW-DQ-test-suite'
265245
);
266-
await setupUserWithPolicy(
246+
247+
await viewBasicUser.create(apiContext, false);
248+
await viewBasicUser.setCustomRulePolicy(
267249
apiContext,
268-
viewBasicUser,
269-
viewBasicPolicy,
270-
viewBasicRole,
271-
TEST_CASE_VIEW_BASIC_POLICY
250+
TEST_CASE_VIEW_BASIC_POLICY,
251+
'PW-DQ-view-basic'
272252
);
273-
await setupUserWithPolicy(
253+
254+
await tableCreateTestsUser.create(apiContext, false);
255+
await tableCreateTestsUser.setCustomRulePolicy(
274256
apiContext,
275-
tableCreateTestsUser,
276-
tableCreateTestsPolicy,
277-
tableCreateTestsRole,
278-
TABLE_CREATE_TESTS_POLICY
257+
TABLE_CREATE_TESTS_POLICY,
258+
'PW-DQ-table-create-tests'
279259
);
280-
await setupUserWithPolicy(
260+
261+
await editTestCaseUser.create(apiContext, false);
262+
await editTestCaseUser.setCustomRulePolicy(
281263
apiContext,
282-
editTestCaseUser,
283-
editTestCasePolicy,
284-
editTestCaseRole,
285-
EDIT_TEST_CASE_POLICY
264+
EDIT_TEST_CASE_POLICY,
265+
'PW-DQ-edit-test-case'
286266
);
287-
await setupUserWithPolicy(
267+
268+
await tableEditTestsUser.create(apiContext, false);
269+
await tableEditTestsUser.setCustomRulePolicy(
288270
apiContext,
289-
tableEditTestsUser,
290-
tableEditTestsPolicy,
291-
tableEditTestsRole,
292-
TABLE_EDIT_TESTS_POLICY
271+
TABLE_EDIT_TESTS_POLICY,
272+
'PW-DQ-table-edit-tests'
293273
);
294-
await setupUserWithPolicy(
274+
275+
await editTestsOnTcUser.create(apiContext, false);
276+
await editTestsOnTcUser.setCustomRulePolicy(
295277
apiContext,
296-
editTestsOnTcUser,
297-
editTestsOnTcPolicy,
298-
editTestsOnTcRole,
299-
EDIT_TESTS_ON_TEST_CASE_POLICY
278+
EDIT_TESTS_ON_TEST_CASE_POLICY,
279+
'PW-DQ-edit-tests-on-tc'
300280
);
301-
await setupUserWithPolicy(
281+
282+
await viewAllTcUser.create(apiContext, false);
283+
await viewAllTcUser.setCustomRulePolicy(
302284
apiContext,
303-
viewAllTcUser,
304-
viewAllTcPolicy,
305-
viewAllTcRole,
306-
VIEW_ALL_TEST_CASE_POLICY
285+
VIEW_ALL_TEST_CASE_POLICY,
286+
'PW-DQ-view-all-tc'
307287
);
308-
await setupUserWithPolicy(
288+
289+
await suiteEditOnlyUser.create(apiContext, false);
290+
await suiteEditOnlyUser.setCustomRulePolicy(
309291
apiContext,
310-
suiteEditOnlyUser,
311-
suiteEditOnlyPolicy,
312-
suiteEditOnlyRole,
313-
TEST_SUITE_EDIT_ONLY_POLICY
292+
TEST_SUITE_EDIT_ONLY_POLICY,
293+
'PW-DQ-suite-edit-only'
314294
);
315295

316296
await afterAction();

0 commit comments

Comments
 (0)