Skip to content

Commit 6b20b6f

Browse files
committed
feat(tests): add control permission + navigation tests
1 parent b1633d7 commit 6b20b6f

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed

loama/tests/permission-table.spec.ts

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,93 @@ test.describe("Permission table", () => {
9696
await readPermCheckbox.check();
9797
await expect(readPermCheckbox).toBeEnabled();
9898
});
99+
100+
test("Granting control permission give's a popup", async ({ page }) => {
101+
await page.getByText("README").click();
102+
103+
// Check if right panel is loaded
104+
const rightPanelElem = page.locator(".right-panel");
105+
const listHeader = rightPanelElem.locator(".list-header");
106+
await expect(listHeader).toContainText("Subjects with permissions")
107+
108+
await rightPanelElem.getByRole("button", { name: "Edit" }).click();
109+
110+
const tableDrawer = page.locator(".permission-drawer");
111+
const publicSubjectRow = tableDrawer.locator("tr", { hasText: "Public" });
112+
await expect(publicSubjectRow).toBeVisible();
113+
await publicSubjectRow.getByRole("button", { name: "Edit" }).click();
114+
115+
const subjectEditorDrawer = page.locator(".subject-drawer");
116+
await expect(subjectEditorDrawer).toBeVisible()
117+
const controlPermCheckbox = subjectEditorDrawer.getByLabel('Control')
118+
await expect(controlPermCheckbox).not.toBeChecked();
119+
await controlPermCheckbox.check();
120+
121+
const checkDialog = page.getByText("Grant control permission?");
122+
await expect(checkDialog).toBeVisible();
123+
});
124+
125+
test("Grant btn in popup contol permission gives the permission", async ({ page }) => {
126+
await page.getByText("README").click();
127+
128+
// Check if right panel is loaded
129+
const rightPanelElem = page.locator(".right-panel");
130+
const listHeader = rightPanelElem.locator(".list-header");
131+
await expect(listHeader).toContainText("Subjects with permissions")
132+
133+
await rightPanelElem.getByRole("button", { name: "Edit" }).click();
134+
135+
const tableDrawer = page.locator(".permission-drawer");
136+
const publicSubjectRow = tableDrawer.locator("tr", { hasText: "Public" });
137+
await expect(publicSubjectRow).toBeVisible();
138+
await publicSubjectRow.getByRole("button", { name: "Edit" }).click();
139+
140+
const subjectEditorDrawer = page.locator(".subject-drawer");
141+
await expect(subjectEditorDrawer).toBeVisible()
142+
const controlPermCheckbox = subjectEditorDrawer.getByLabel('Control')
143+
await expect(controlPermCheckbox).not.toBeChecked();
144+
await controlPermCheckbox.check();
145+
146+
const checkDialog = page.getByRole("alertdialog", { name: "Grant control permission?" });
147+
await expect(checkDialog).toBeVisible();
148+
149+
await checkDialog.getByRole("button", { name: "Grant" }).click();
150+
151+
await expect(controlPermCheckbox).toBeEnabled();
152+
await expect(controlPermCheckbox).toBeChecked();
153+
await controlPermCheckbox.uncheck();
154+
await expect(controlPermCheckbox).toBeEnabled();
155+
});
156+
157+
test("An toast should show while updating permissions", async ({ page }) => {
158+
await page.getByText("README").click();
159+
160+
// Check if right panel is loaded
161+
const rightPanelElem = page.locator(".right-panel");
162+
const listHeader = rightPanelElem.locator(".list-header");
163+
await expect(listHeader).toContainText("Subjects with permissions")
164+
165+
await rightPanelElem.getByRole("button", { name: "Edit" }).click();
166+
167+
const tableDrawer = page.locator(".permission-drawer");
168+
const publicSubjectRow = tableDrawer.locator("tr", { hasText: "Public" });
169+
await expect(publicSubjectRow).toBeVisible();
170+
await publicSubjectRow.getByRole("button", { name: "Edit" }).click();
171+
172+
const subjectEditorDrawer = page.locator(".subject-drawer");
173+
await expect(subjectEditorDrawer).toBeVisible()
174+
const writePermCheckbox = subjectEditorDrawer.getByLabel('Write')
175+
await expect(writePermCheckbox).not.toBeChecked();
176+
await writePermCheckbox.check();
177+
178+
const mask = page.locator(".p-drawer-mask", { hasText: "Edit subject" })
179+
await mask.click({ position: { x: 1, y: 1 } });
180+
181+
const alertToast = page.getByRole("alert")
182+
await expect(alertToast).toBeVisible();
183+
184+
await expect(writePermCheckbox).toBeEnabled();
185+
await writePermCheckbox.uncheck();
186+
await expect(writePermCheckbox).toBeEnabled();
187+
})
99188
})

loama/tests/resource-explorer.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,16 @@ test.describe("Resource Explorer", () => {
1111

1212
expect(page.getByText("card")).toBeVisible();
1313
})
14+
test("Can go up a level", async ({ page }) => {
15+
await page.getByRole("button", { name: "View resources" }).click();
16+
const breadcrumsElement = page.locator("#explorer-breadcrumbs");
17+
await expect(breadcrumsElement).toContainText("/home/profile/");
18+
19+
await expect(page.locator(".left-panel").getByText("card")).toBeVisible();
20+
21+
const homeLink = page.getByRole('link', { name: 'home' });
22+
await homeLink.click();
23+
await expect(page.locator('div').filter({ hasText: /^profile$/ })).toBeVisible();
24+
await expect(breadcrumsElement).toContainText("/home/");
25+
})
1426
})

0 commit comments

Comments
 (0)