mirror of
https://github.com/penpot/penpot.git
synced 2025-12-11 22:14:05 +01:00
408 lines
9.6 KiB
JavaScript
408 lines
9.6 KiB
JavaScript
import { test, expect } from "@playwright/test";
|
|
import DashboardPage from "../pages/DashboardPage";
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await DashboardPage.init(page);
|
|
await DashboardPage.mockConfigFlags(page, [
|
|
"enable-subscriptions",
|
|
"disable-onboarding",
|
|
]);
|
|
});
|
|
|
|
test("Team with unlimited subscription has specific icon in menu", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-unlimited-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-projects?team-id=*",
|
|
"dashboard/get-projects-second-team.json",
|
|
);
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
await dashboardPage.goToSecondTeamDashboard();
|
|
await expect(page.getByTestId("subscription-icon")).toBeVisible();
|
|
});
|
|
|
|
test("The Unlimited subscription has its name in the sidebar dropdown", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-unlimited-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage-one-editor.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
await dashboardPage.goToDashboard();
|
|
|
|
await expect(page.getByTestId("subscription-name")).toHaveText(
|
|
"Unlimited plan (trial)",
|
|
);
|
|
});
|
|
|
|
test("The sidebar dropdown displays the correct subscription name when status is Unpaid", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-unlimited-unpaid-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
await dashboardPage.goToDashboard();
|
|
|
|
await expect(page.getByTestId("subscription-name")).toHaveText(
|
|
"Professional plan",
|
|
);
|
|
});
|
|
|
|
test("The sidebar dropdown displays the correct subscription name when status is cancelled", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-enterprise-canceled-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
await dashboardPage.goToDashboard();
|
|
|
|
await expect(page.getByTestId("subscription-name")).toHaveText(
|
|
"Professional plan",
|
|
);
|
|
});
|
|
|
|
test("Team settings has susbscription name and no manage subscription link when is member", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"logged-in-user/get-profile-logged-in.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-member.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-projects?team-id=*",
|
|
"dashboard/get-projects-second-team.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-members?team-id=*",
|
|
"subscription/get-team-members-subscription-member.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-stats?team-id=*",
|
|
"dashboard/get-team-stats.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
|
|
await dashboardPage.goToSecondTeamSettingsSection();
|
|
await expect(page.getByText("Unlimited (trial)")).toBeVisible();
|
|
await expect(
|
|
page.getByRole("button", { name: "Manage your subscription" }),
|
|
).not.toBeVisible();
|
|
});
|
|
|
|
test("Team settings has susbscription name and manage subscription link when is owner", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-unlimited-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-projects?team-id=*",
|
|
"dashboard/get-projects-second-team.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-members?team-id=*",
|
|
"subscription/get-team-members-subscription-owner.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-stats?team-id=*",
|
|
"dashboard/get-team-stats.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
|
|
await dashboardPage.goToSecondTeamSettingsSection();
|
|
|
|
await expect(page.getByText("Unlimited (trial)")).toBeVisible();
|
|
await expect(
|
|
page.getByRole("button", { name: "Manage your subscription" }),
|
|
).toBeVisible();
|
|
});
|
|
|
|
test("Members tab has warning message when user has more seats than editors", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-unlimited-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-projects?team-id=*",
|
|
"dashboard/get-projects-second-team.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-members?team-id=*",
|
|
"subscription/get-team-members-subscription-eight-member.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
|
|
await dashboardPage.goToSecondTeamMembersSection();
|
|
|
|
const ctas = page.getByTestId("cta");
|
|
await expect(ctas).toHaveCount(2);
|
|
await expect(
|
|
page.getByText("Inviting people while on the unlimited plan"),
|
|
).toBeVisible();
|
|
});
|
|
|
|
test("Invitations tab has warning message when user has more seats than editors", async ({
|
|
page,
|
|
}) => {
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-profile",
|
|
"subscription/get-profile-unlimited-subscription.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-subscription-usage",
|
|
"subscription/get-subscription-usage.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-info",
|
|
"subscription/get-team-info-subscriptions.json",
|
|
);
|
|
|
|
const dashboardPage = new DashboardPage(page);
|
|
await dashboardPage.setupDashboardFull();
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-teams",
|
|
"subscription/get-teams-unlimited-subscription-owner.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-projects?team-id=*",
|
|
"dashboard/get-projects-second-team.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-members?team-id=*",
|
|
"subscription/get-team-members-subscription-eight-member.json",
|
|
);
|
|
|
|
await DashboardPage.mockRPC(
|
|
page,
|
|
"get-team-invitations?team-id=*",
|
|
"subscription/get-team-invitations.json",
|
|
);
|
|
|
|
await dashboardPage.mockRPC(
|
|
"push-audit-events",
|
|
"workspace/audit-event-empty.json",
|
|
);
|
|
|
|
await dashboardPage.goToSecondTeamInvitationsSection();
|
|
|
|
const ctas = page.getByTestId("cta");
|
|
await expect(ctas).toHaveCount(2);
|
|
await expect(
|
|
page.getByText("Inviting people while on the unlimited plan"),
|
|
).toBeVisible();
|
|
});
|