mirror of
https://github.com/lukevella/rallly.git
synced 2025-08-02 16:09:08 +02:00
✨ Detect time zone change (#1254)
This commit is contained in:
parent
acb7aa88da
commit
7255130699
5 changed files with 192 additions and 2 deletions
78
apps/web/tests/timezone-change.spec.ts
Normal file
78
apps/web/tests/timezone-change.spec.ts
Normal file
|
@ -0,0 +1,78 @@
|
|||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test.describe("Timezone change", () => {
|
||||
test("should show a dialog when the timezone changes", async ({ page }) => {
|
||||
await page.goto("/");
|
||||
await page.evaluate(() => {
|
||||
localStorage.setItem("previousTimeZone", "some other timezone");
|
||||
});
|
||||
await page.reload();
|
||||
const dialog = page.locator("text=Timezone Change Detected");
|
||||
await expect(dialog).toBeVisible();
|
||||
});
|
||||
|
||||
test("should not show a dialog when the timezone does not change", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.goto("/");
|
||||
await page.evaluate(() => {
|
||||
localStorage.setItem(
|
||||
"previousTimeZone",
|
||||
Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
);
|
||||
});
|
||||
await page.reload();
|
||||
const dialog = page.locator("text=Timezone Change Detected");
|
||||
await expect(dialog).toBeHidden();
|
||||
});
|
||||
|
||||
test("should not show dialog after user accepts a change", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.goto("/");
|
||||
await page.evaluate(() => {
|
||||
localStorage.setItem("previousTimeZone", "some other timezone");
|
||||
});
|
||||
await page.reload();
|
||||
await page.waitForSelector("text=Timezone Change Detected");
|
||||
await page.click("text=Yes, update my timezone");
|
||||
await page.reload();
|
||||
const dialog = page.locator("text=Timezone Change Detected");
|
||||
await expect(dialog).toBeHidden();
|
||||
});
|
||||
|
||||
test("should not show dialog after user declines a change", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.goto("/");
|
||||
await page.evaluate(() => {
|
||||
localStorage.setItem("previousTimeZone", "some other timezone");
|
||||
});
|
||||
await page.reload();
|
||||
await page.waitForSelector("text=Timezone Change Detected");
|
||||
await page.click("text=No, keep the current timezone");
|
||||
await page.reload();
|
||||
const dialog = page.locator("text=Timezone Change Detected");
|
||||
await expect(dialog).toBeHidden();
|
||||
});
|
||||
|
||||
test.describe("when localStorage is not available", () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await page.evaluate(() => {
|
||||
Object.defineProperty(window, "localStorage", {
|
||||
value: undefined,
|
||||
writable: true,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test("should not show a dialog when the timezone changes", async ({
|
||||
page,
|
||||
}) => {
|
||||
await page.goto("/");
|
||||
await page.reload();
|
||||
const dialog = page.locator("text=Timezone Change Detected");
|
||||
await expect(dialog).toBeHidden();
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue