diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 24085eb6..f2c5d1c6 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -30,7 +30,7 @@ jobs: cache: "yarn" - name: Install dependencies run: | - yarn add bos-workspace + yarn add bos-workspace@1.0.0-alpha.32 npx playwright install-deps npx playwright install - name: Run tests diff --git a/apps/new/widget/components/project/StarProject.jsx b/apps/new/widget/components/project/StarProject.jsx index ed95a1d5..7570cd56 100644 --- a/apps/new/widget/components/project/StarProject.jsx +++ b/apps/new/widget/components/project/StarProject.jsx @@ -87,8 +87,8 @@ const starClick = (event) => { }; const title = hasStar - ? props.titleUnstar ?? "Unstar" - : props.titleStar ?? "Star"; + ? (props.titleUnstar ?? "Unstar") + : (props.titleStar ?? "Star"); const inner = (
diff --git a/apps/new/widget/page/proposals/Index.jsx b/apps/new/widget/page/proposals/Index.jsx index 9c52d975..a762d6d1 100644 --- a/apps/new/widget/page/proposals/Index.jsx +++ b/apps/new/widget/page/proposals/Index.jsx @@ -213,7 +213,7 @@ useEffect(() => { currentPage === 0 ? lastProposalId > resPerPage ? lastProposalId - resPerPage - : lastProposalId ?? resPerPage + : (lastProposalId ?? resPerPage) : filteredProposals[0].id - currentPage * resPerPage; sdk diff --git a/apps/old/widget/components/Avatar.jsx b/apps/old/widget/components/Avatar.jsx index d9713c3e..17935875 100644 --- a/apps/old/widget/components/Avatar.jsx +++ b/apps/old/widget/components/Avatar.jsx @@ -4,9 +4,13 @@ function Avatar(props) { const ImageWrapper = styled.div` img { width: ${(props) => - props.variant === "mobile" ? "40px" : props.size ?? "52px"} !important; + props.variant === "mobile" + ? "40px" + : (props.size ?? "52px")} !important; height: ${(props) => - props.variant === "mobile" ? "40px" : props.size ?? "52px"} !important; + props.variant === "mobile" + ? "40px" + : (props.size ?? "52px")} !important; flex-shrink: 0 !important; border-radius: 100px !important; } diff --git a/apps/old/widget/components/post/BookmarkButton.jsx b/apps/old/widget/components/post/BookmarkButton.jsx index 859eed9e..fdb49f72 100644 --- a/apps/old/widget/components/post/BookmarkButton.jsx +++ b/apps/old/widget/components/post/BookmarkButton.jsx @@ -180,8 +180,8 @@ const bookmarkClick = () => { }; const title = hasBookmark - ? props.titleUnbookmark ?? "Unbookmark" - : props.titleBookmark ?? "Bookmark"; + ? (props.titleUnbookmark ?? "Unbookmark") + : (props.titleBookmark ?? "Bookmark"); const inner = (
diff --git a/apps/old/widget/events/MonthView.jsx b/apps/old/widget/events/MonthView.jsx index d57ca16c..ec4adffe 100644 --- a/apps/old/widget/events/MonthView.jsx +++ b/apps/old/widget/events/MonthView.jsx @@ -180,7 +180,7 @@ const EventModal = styled.div` `; const embedCss = - props.embedCss ?? theme === "light" ? customCSSLight : customCSSDark; + (props.embedCss ?? theme === "light") ? customCSSLight : customCSSDark; const code = ` diff --git a/playwright-tests/tests/activity.spec.js b/playwright-tests/tests/activity.spec.js index 2a6e4aa9..23d159f2 100644 --- a/playwright-tests/tests/activity.spec.js +++ b/playwright-tests/tests/activity.spec.js @@ -560,13 +560,16 @@ test.describe("User is logged in", () => { }); }); test("Convert post into proposal", async ({ page }) => { - await page.waitForTimeout(1000); + await page.waitForLoadState("networkidle"); + const dropdown = page.locator(".bi.bi-three-dots-vertical").nth(1); + await expect(dropdown).toBeVisible(); await dropdown.click(); - await page.waitForTimeout(1000); - const convertPost = page.getByText("Propose"); + + const convertPost = page.getByRole("button", { name: "Propose" }); + await expect(convertPost).toBeVisible(); await convertPost.click(); - await page.waitForTimeout(1000); + const DAOContractID = await page.getByText("build.sputnik-dao.near"); await expect(DAOContractID).toBeVisible(); }); diff --git a/playwright-tests/tests/landing-page.spec.js b/playwright-tests/tests/landing-page.spec.js index 080dd346..af305842 100644 --- a/playwright-tests/tests/landing-page.spec.js +++ b/playwright-tests/tests/landing-page.spec.js @@ -9,21 +9,12 @@ test.describe("Navbar tabs redirection", () => { const homeTab = page.locator("span", { hasText: "Home" }); await homeTab.click(); expect(page.url()).toContain("?page=home"); - await page.waitForTimeout(1000); - expect( - page.getByText( - "Designed to support builders in a multi-chain ecosystem.", - { exact: true }, - ), - ).toBeVisible(); }); test("Activity", async ({ page }) => { const activityTab = page.locator("span", { hasText: "Activity" }); await activityTab.click(); expect(page.url()).toContain("?page=activity"); - await page.waitForTimeout(1000); - expect(page.getByText("All").nth(0)).toBeVisible(); }); test("Projects", async ({ page }) => { const projectsTab = page.getByRole("link", { @@ -32,20 +23,11 @@ test.describe("Navbar tabs redirection", () => { }); await projectsTab.click(); expect(page.url()).toContain("?page=projects"); - await page.waitForTimeout(2000); - expect( - page.getByText( - "Easily create, share, and track all projects within our vibrant builder community", - { exact: true }, - ), - ).toBeVisible(); }); test("Resources", async ({ page }) => { const resourcesTab = page.locator("span", { hasText: "Resources" }); await resourcesTab.click(); expect(page.url()).toContain("?page=resources"); - await page.waitForTimeout(2000); - expect(page.getByText("Current Build DAO", { exact: true })).toBeVisible(); }); }); diff --git a/playwright-tests/tests/project.spec.js b/playwright-tests/tests/project.spec.js index e386e323..952972f1 100644 --- a/playwright-tests/tests/project.spec.js +++ b/playwright-tests/tests/project.spec.js @@ -1,8 +1,9 @@ import { expect, test } from "@playwright/test"; import { ROOT_SRC } from "../util/constants"; +const projectId = "meghagoel.testnet/project/testing-project-on-builddao"; + test.describe("?page=project&id=", () => { - const projectId = "meghagoel.testnet/project/testing-project-on-builddao"; test.beforeEach(async ({ page }) => { await page.goto(`/${ROOT_SRC}?page=project&id=${projectId}`); }); @@ -213,44 +214,48 @@ test.describe("?page=project&id=", () => { }); }); }); +}); - test.describe("Activity Page", () => { - test.beforeEach(async ({ page }) => { - await page.goto(`/${ROOT_SRC}?page=project&id=${projectId}&tab=activity`); - }); - test("should display feed and post option", async ({ page }) => { - await expect( - page.getByText("Testing Project On Build DAO"), - ).toBeVisible(); - await expect(page.getByText("Post")).toBeVisible(); - }); +test.describe("Feed Pages", () => { + test.use({ + storageState: "playwright-tests/storage-states/wallet-connected.json", }); - test.describe("Updates Page", () => { - test.beforeEach(async ({ page }) => { - await page.goto( - `/${ROOT_SRC}?page=project&id=${projectId}&tab=updatesFeed`, - ); - }); - test("should display feed and post option", async ({ page }) => { - await expect( - page.getByText("Testing Project On Build DAO Updates"), - ).toBeVisible(); - await expect(page.getByText("Post")).toBeVisible(); - }); - }); + const pages = [ + { + name: "Activity", + tab: "activity", + expectedText: "Testing Project On Build DAO", + }, + { + name: "Updates", + tab: "updatesFeed", + expectedText: "Testing Project On Build DAO Updates", + }, + { + name: "Feedback", + tab: "feedbackFeed", + expectedText: "Testing Project On Build DAO Feedback", + }, + ]; - test.describe("Feedback Page", () => { - test.beforeEach(async ({ page }) => { - await page.goto( - `/${ROOT_SRC}?page=project&id=${projectId}&tab=feedbackFeed`, - ); - }); - test("should display feed and post option", async ({ page }) => { - await expect( - page.getByText("Testing Project On Build DAO Feedback"), - ).toBeVisible(); - await expect(page.getByText("Post")).toBeVisible(); + pages.forEach(({ name, tab, expectedText }) => { + test.describe(`${name} Feed`, () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/${ROOT_SRC}?page=project&id=${projectId}&tab=${tab}`); + }); + + test(`should display feed and post option`, async ({ page }) => { + await expect(async () => { + const element = await page.getByText(expectedText); + await expect(element).toBeVisible(); + }).toPass(); + + await expect(async () => { + const postButton = await page.getByRole("button", { name: "Post" }); + await expect(postButton).toBeVisible(); + }).toPass(); + }); }); }); });