|
1 | 1 | import { test, expect } from "@playwright/test"; |
2 | 2 |
|
3 | 3 | // checking visibility and expanding some dropdowns |
4 | | -test("test visibility", async ({ page }) => { |
5 | | - try { |
6 | | - console.log("******Begin test******"); |
7 | | - // Temporary fix |
8 | | - let domain = process.env.DATAFED_DOMAIN; |
9 | | - await page.goto("https://" + domain + "/"); |
10 | | - if (await page.getByRole("button", { name: "Log In / Register" }).isVisible()) { |
11 | | - console.log("NOT LOGGED IN"); |
| 4 | +test.describe("DataFed UI Navigation", () => { |
| 5 | + test("should display main navigation elements", async ({ page }) => { |
| 6 | + const domain = process.env.DATAFED_DOMAIN; |
| 7 | + if (!domain) { |
| 8 | + throw new Error("DATAFED_DOMAIN environment variable not set"); |
12 | 9 | } |
13 | | - if (await expect(page.getByText("Continue Registration")).toBeVisible()) { |
14 | | - await page.getByText("Continue Registration").click({ timeout: 20000 }); |
| 10 | + |
| 11 | + await page.goto(`https://${domain}/`); |
| 12 | + |
| 13 | + // Handle optional registration continuation |
| 14 | + const continueReg = page.getByText("Continue Registration"); |
| 15 | + if (await continueReg.isVisible()) { |
| 16 | + await continueReg.click(); |
15 | 17 | } |
16 | | - await expect(page.locator(".ui-icon").first()).toBeVisible({ |
17 | | - timeout: 20000, |
18 | | - }); |
| 18 | + |
| 19 | + // Verify main elements |
| 20 | + await expect(page.locator(".ui-icon").first()).toBeVisible(); |
19 | 21 | await expect(page.getByText("DataFed - Scientific Data")).toBeVisible(); |
20 | 22 | await expect(page.getByRole("link", { name: "My Data" })).toBeVisible(); |
21 | 23 | await expect(page.getByRole("link", { name: "Catalog" })).toBeVisible(); |
22 | | - await expect(page.getByRole("button", { name: "" })).toBeVisible(); |
23 | | - |
24 | | - await page |
25 | | - .getByRole("treeitem", { name: " Public Collections" }) |
26 | | - .getByRole("button") |
27 | | - .click(); |
28 | | - await page |
29 | | - .getByRole("treeitem", { name: " Public Collections" }) |
30 | | - .getByRole("group") |
31 | | - .click(); |
32 | | - await page.getByRole("treeitem", { name: " Allocations" }).getByRole("button").click(); |
33 | | - await page.getByRole("treeitem", { name: " Project Data" }).getByRole("button").click(); |
34 | | - await page.getByRole("treeitem", { name: " Shared Data" }).getByRole("button").click(); |
35 | | - await page |
36 | | - .getByRole("treeitem", { name: " Saved Queries" }) |
37 | | - .locator("span") |
38 | | - .first() |
39 | | - .click(); |
40 | | - await page.getByRole("treeitem", { name: " Saved Queries" }).getByRole("button").click(); |
41 | | - await page.getByText("Provenance Annotate Upload").click({ timeout: 20000 }); |
42 | | - await page.getByRole("treeitem", { name: " By User" }).getByRole("button").click(); |
43 | | - } catch (error) { |
44 | | - // element not visible, either the test broke due to tags changing, or not logged in |
45 | | - // try to log out, because if not logged out, future tests will fail due to globus being annoying |
46 | | - if (await page.getByRole("button", { name: "" }).isVisible()) { |
47 | | - await page.getByRole("button", { name: "" }).click(); |
48 | | - } else { |
49 | | - // if in here, check if you logged out properly |
50 | | - throw error; |
| 24 | + }); |
| 25 | + |
| 26 | + test("should expand tree navigation items", async ({ page }) => { |
| 27 | + const domain = process.env.DATAFED_DOMAIN; |
| 28 | + if (!domain) { |
| 29 | + throw new Error("DATAFED_DOMAIN environment variable not set"); |
| 30 | + } |
| 31 | + |
| 32 | + await page.goto(`https://${domain}/`); |
| 33 | + |
| 34 | + // Define tree items to expand |
| 35 | + const treeItems = [ |
| 36 | + "Public Collections", |
| 37 | + "Allocations", |
| 38 | + "Project Data", |
| 39 | + "Shared Data", |
| 40 | + "Saved Queries", |
| 41 | + "By User", |
| 42 | + ]; |
| 43 | + |
| 44 | + for (const item of treeItems) { |
| 45 | + const treeItem = page.getByRole("treeitem", { name: new RegExp(item) }); |
| 46 | + await treeItem.getByRole("button").click(); |
| 47 | + // Add assertion that it expanded if needed |
51 | 48 | } |
52 | | - } |
53 | | - //removed logout |
| 49 | + }); |
54 | 50 | }); |
0 commit comments