* feat: Change hashedLink field to array Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Implement core single-use links logic Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Get private link from list of hashedLinks on event list page Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix defalut single-use links form field value Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix some type errors while compiling Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Use onChange callback instead of setting form values directly Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add e2e tests for single-use links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Refactor single-use-links admin interface Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix settings toggle bugs Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Remove redundant inline comments Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Remove debug statements Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Remove single-use links e2e tests Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Remove private-link feature and override with single-use-links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Remove redundant migrations Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Add managedEvents restriction Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix single-use-links for org Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix recommended UI changes Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix duration not respected for private links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix team event page title Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add logic to copy each single-use-links from event listing page Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Add single-use links support for managed event types Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix some type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Disable adding new single-use links when field is locked Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Address feedbacks Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Hide add new link button for locked single-use link field Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * chore: Use empty string for single-use link fallback value condition Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix org single-use links in listing page Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Auto toggle unlock button for managed event's single-use links option Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * Revert "feat: Auto toggle unlock button for managed event's single-use links option" This reverts commit 5a2ed6f0bf428d52de153335499f02f42ccdf18f. * chore: Disable parent toggle for single-use-links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * feat: Remove tooltip and give info message below field Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * add tooltip * tooltip message * fix: Fix typo Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix typescript type errors Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * fix: Fix few unit tests Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * refactor: Remove redundant query Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> * merge conflict fix * More merge conflict fix and refactor * fix tests, code refactor * fix: type check * fix: duration config and keep links when updating event type * fix: e2e * refactor: Replace single-use-links with multiple-private-links Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> --------- Signed-off-by: Souptik Datta <souptikdatta2001@gmail.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Amit91848 <samit91848@gmail.com>
74 lines
3.1 KiB
TypeScript
74 lines
3.1 KiB
TypeScript
import { expect } from "@playwright/test";
|
|
|
|
import { test } from "./lib/fixtures";
|
|
import {
|
|
bookTimeSlot,
|
|
selectFirstAvailableTimeSlotNextMonth,
|
|
submitAndWaitForResponse,
|
|
} from "./lib/testUtils";
|
|
|
|
test.describe.configure({ mode: "parallel" });
|
|
|
|
// TODO: This test is very flaky. Feels like tossing a coin and hope that it won't fail. Needs to be revisited.
|
|
test.describe("hash my url", () => {
|
|
test.beforeEach(async ({ users }) => {
|
|
const user = await users.create();
|
|
await user.apiLogin();
|
|
});
|
|
test.afterEach(async ({ users }) => {
|
|
await users.deleteAll();
|
|
});
|
|
test("generate url hash", async ({ page }) => {
|
|
await page.goto("/event-types");
|
|
// We wait until loading is finished
|
|
await page.waitForSelector('[data-testid="event-types"]');
|
|
await page.locator("ul[data-testid=event-types] > li a").first().click();
|
|
// We wait for the page to load
|
|
await page.locator(".primary-navigation >> text=Advanced").click();
|
|
// ignore if it is already checked, and click if unchecked
|
|
const hashedLinkCheck = await page.locator('[data-testid="multiplePrivateLinksCheck"]');
|
|
|
|
await hashedLinkCheck.click();
|
|
|
|
// we wait for the hashedLink setting to load
|
|
const $url = await page.locator('//*[@data-testid="generated-hash-url-0"]').inputValue();
|
|
|
|
// click update
|
|
await page.locator('[data-testid="update-eventtype"]').press("Enter");
|
|
|
|
// book using generated url hash
|
|
await page.goto($url);
|
|
await selectFirstAvailableTimeSlotNextMonth(page);
|
|
await bookTimeSlot(page);
|
|
// Make sure we're navigated to the success page
|
|
await expect(page.locator("[data-testid=success-page]")).toBeVisible();
|
|
|
|
// hash regenerates after successful booking
|
|
await page.goto("/event-types");
|
|
// We wait until loading is finished
|
|
await page.waitForSelector('[data-testid="event-types"]');
|
|
await page.locator("ul[data-testid=event-types] > li a").first().click();
|
|
// We wait for the page to load
|
|
await page.locator(".primary-navigation >> text=Advanced").click();
|
|
|
|
const hashedLinkCheck2 = await page.locator('[data-testid="multiplePrivateLinksCheck"]');
|
|
await hashedLinkCheck2.click();
|
|
|
|
// we wait for the hashedLink setting to load
|
|
const $newUrl = await page.locator('//*[@data-testid="generated-hash-url-0"]').inputValue();
|
|
expect($url !== $newUrl).toBeTruthy();
|
|
|
|
// Ensure that private URL is enabled after modifying the event type.
|
|
// Additionally, if the slug is changed, ensure that the private URL is updated accordingly.
|
|
await page.getByTestId("vertical-tab-event_setup_tab_title").click();
|
|
await page.locator("[data-testid=event-title]").first().fill("somethingrandom");
|
|
await page.locator("[data-testid=event-slug]").first().fill("somethingrandom");
|
|
await submitAndWaitForResponse(page, "/api/trpc/eventTypes/update?batch=1", {
|
|
action: () => page.locator("[data-testid=update-eventtype]").click(),
|
|
});
|
|
await page.locator(".primary-navigation >> text=Advanced").click();
|
|
const $url2 = await page.locator('//*[@data-testid="generated-hash-url-0"]').inputValue();
|
|
expect($url2.includes("somethingrandom")).toBeTruthy();
|
|
});
|
|
});
|