Files
calendar/apps/web/playwright/organization/across-org/across-org.e2e.ts
T
ac300ff670 refactor: enable infinite scrolling for all (#16463)
* refactor: enable infinite scrolling for all

* chore: remove unused code

* fix: tests

* chore: type err

* chore: update email embed test

* chore: update tests

* chore: update tests

* chore: fix horizontal tabitem

* chore

* fix: conflicts

* chore: conflict

* fix: E2E tests

* chore: remove idle

* fix test

---------

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
2024-09-30 10:44:04 +01:00

108 lines
2.9 KiB
TypeScript

import { expect } from "@playwright/test";
import { WEBAPP_URL } from "@calcom/lib/constants";
import prisma from "@calcom/prisma";
import { test } from "../../lib/fixtures";
test.afterEach(({ users }) => {
users.deleteAll();
});
test.describe("user1NotMemberOfOrg1 is part of team1MemberOfOrg1", () => {
test("Team1 profile should show correct domain if logged in as User1", async ({ page, users, orgs }) => {
const org = await orgs.create({
name: "TestOrg",
});
const user1NotMemberOfOrg1 = await users.create(undefined, {
hasTeam: true,
});
const { team: team1MemberOfOrg1 } = await user1NotMemberOfOrg1.getFirstTeamMembership();
await moveTeamToOrg({ team: team1MemberOfOrg1, org });
await user1NotMemberOfOrg1.apiLogin();
await page.goto(`/settings/teams/${team1MemberOfOrg1.id}/profile`);
const domain = await page.locator(".testid-leading-text-team-url").textContent();
expect(domain).toContain(org.slug);
});
test("EventTypes listing should show correct link for user events and team1MemberOfOrg1's events", async ({
page,
users,
orgs,
}) => {
const org = await orgs.create({
name: "TestOrg",
});
const user1NotMemberOfOrg1 = await users.create(undefined, {
hasTeam: true,
});
const { team: team1MemberOfOrg1 } = await user1NotMemberOfOrg1.getFirstTeamMembership();
await moveTeamToOrg({ team: team1MemberOfOrg1, org });
await user1NotMemberOfOrg1.apiLogin();
await page.goto("/event-types");
await page.waitForSelector(`[data-testid="event-types"] [data-testid="preview-link-button"]`, {
timeout: 5000,
});
const userEventLinksLocators = await page
.locator(`[data-testid="event-types"] [data-testid="preview-link-button"]`)
.all();
// Get all the event links
expect(userEventLinksLocators.length).toBeGreaterThan(0);
for (const userEventLinkLocator of userEventLinksLocators) {
const href = await userEventLinkLocator.getAttribute("href");
expect(href).toContain(WEBAPP_URL);
}
await page.goto(`/event-types?teamId=${team1MemberOfOrg1.id}`);
await page.waitForSelector(`[data-testid="event-types"] [data-testid="preview-link-button"]`, {
timeout: 5000,
});
const teamEventLinksLocators = await page
.locator(`[data-testid="event-types"] [data-testid="preview-link-button"]`)
.all();
expect(teamEventLinksLocators.length).toBeGreaterThan(0);
for (const teamEventLinksLocator of teamEventLinksLocators) {
const href = await teamEventLinksLocator.getAttribute("href");
expect(href).not.toContain(WEBAPP_URL);
expect(href).toContain(org.slug);
}
});
});
async function moveTeamToOrg({
team,
org,
}: {
team: {
id: number;
};
org: {
id: number;
};
}) {
await prisma.team.update({
where: {
id: team.id,
},
data: {
parent: {
connect: {
id: org.id,
},
},
},
});
}