From 027adf3bb0c1ec9ea847fd94123018f6ea8ef1d4 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Wed, 6 Jul 2022 10:36:57 +0300 Subject: [PATCH] Initial badges E2E tests --- app/permissions.ts | 9 ++++++--- app/routes/badges.tsx | 1 + app/routes/badges/$id.tsx | 2 +- app/routes/u.$identifier/index.tsx | 10 +++++++--- cypress/e2e/badges.cy.ts | 17 +++++++++++++++++ cypress/e2e/user.cy.ts | 15 +++++++++++++++ 6 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 cypress/e2e/badges.cy.ts diff --git a/app/permissions.ts b/app/permissions.ts index bc247474d..79377440e 100644 --- a/app/permissions.ts +++ b/app/permissions.ts @@ -11,12 +11,15 @@ import type { ManagersByBadgeId } from "./db/models/badges.server"; export function canPerformAdminActions(user?: Pick) { if (["development", "test"].includes(process.env.NODE_ENV)) return true; - if (!user) return false; - return user.discordId === ADMIN_DISCORD_ID; + return isAdmin(user); +} + +function isAdmin(user?: Pick) { + return user?.discordId === ADMIN_DISCORD_ID; } function adminOverride(user?: Pick) { - if (canPerformAdminActions(user)) { + if (isAdmin(user)) { return () => true; } diff --git a/app/routes/badges.tsx b/app/routes/badges.tsx index e838802c3..4e43d1e6c 100644 --- a/app/routes/badges.tsx +++ b/app/routes/badges.tsx @@ -33,6 +33,7 @@ export default function BadgesPageLayout() { className="badges__nav-link" key={badge.id} to={String(badge.id)} + data-cy="badge-nav-link" > diff --git a/app/routes/badges/$id.tsx b/app/routes/badges/$id.tsx index 35f9d46c0..1104c486a 100644 --- a/app/routes/badges/$id.tsx +++ b/app/routes/badges/$id.tsx @@ -49,7 +49,7 @@ export default function BadgeDetailsPage() {
{badgeExplanationText(badge)}
{canEditBadgeOwners({ user, managers: data.managers }) ? ( - + Edit ) : null} diff --git a/app/routes/u.$identifier/index.tsx b/app/routes/u.$identifier/index.tsx index 06611b360..bf445dd02 100644 --- a/app/routes/u.$identifier/index.tsx +++ b/app/routes/u.$identifier/index.tsx @@ -129,7 +129,7 @@ function BadgeContainer(props: { badges: UserPageLoaderData["badges"] }) { }; return ( -
+
0 ? (
{smallBadges.map((badge) => ( -
+
setBadgeFirst(badge)} @@ -154,7 +158,7 @@ function BadgeContainer(props: { badges: UserPageLoaderData["badges"] }) {
) : null}
-
+
{badgeExplanationText(bigBadge)}
diff --git a/cypress/e2e/badges.cy.ts b/cypress/e2e/badges.cy.ts new file mode 100644 index 000000000..da2310e91 --- /dev/null +++ b/cypress/e2e/badges.cy.ts @@ -0,0 +1,17 @@ +import { BADGES_PAGE } from "~/utils/urls"; + +export {}; + +describe("Plus suggestions page", () => { + beforeEach(() => { + cy.seed(); + }); + + it("browses the badges not logged in", function () { + cy.visit(BADGES_PAGE); + + cy.getCy("badge-nav-link").first().click(); + cy.contains("Awarded for winning"); + cy.getCy("edit-button").should("not.exist"); + }); +}); diff --git a/cypress/e2e/user.cy.ts b/cypress/e2e/user.cy.ts index 5507eab7f..3a3717b95 100644 --- a/cypress/e2e/user.cy.ts +++ b/cypress/e2e/user.cy.ts @@ -46,4 +46,19 @@ describe("User page", () => { cy.contains("Finland").should("not.exist"); cy.contains(bio).should("not.exist"); }); + + it("changes big badge in badge container", () => { + cy.visit("/u/79237403620945920"); + + cy.getCy("small-badge").first().click(); + + cy.getCy("badge-explanation") + .invoke("text") + .then((previousText) => { + cy.getCy("small-badge").first().click(); + cy.getCy("badge-explanation") + .invoke("text") + .should("not.equal", previousText); + }); + }); });