Initial curated EventLens source from 0d80d3b38dfb817285481665b9e71e4b8a0656a0
This commit is contained in:
commit
663ea8c829
85 files changed
+12395
No files matched your search
@@ -0,0 +1,32 @@
|
||||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("settings keeps session state and reports a persistence failure", async ({ page }) => {
|
||||
await page.addInitScript(() => {
|
||||
const originalSetItem = Storage.prototype.setItem;
|
||||
Storage.prototype.setItem = function setItem(key: string, value: string) {
|
||||
if (key === "eventlens.preferences.v1") {
|
||||
throw new DOMException("Storage is unavailable", "QuotaExceededError");
|
||||
}
|
||||
return originalSetItem.call(this, key, value);
|
||||
};
|
||||
});
|
||||
|
||||
await page.goto("/#settings");
|
||||
|
||||
const compact = page.getByRole("radio", { name: /Compact/i });
|
||||
await compact.press("Space");
|
||||
|
||||
await expect(compact).toBeChecked();
|
||||
await expect(page.locator(".settings-save-feedback")).toHaveText("Preferences changed for this session only");
|
||||
await expect(page.getByText("Saved automatically in this browser", { exact: true })).toBeHidden();
|
||||
await expect(page.getByText("Preferences are available for this session only because browser storage is unavailable.")).toBeVisible();
|
||||
await expect(page.getByText("Not saved to browser storage")).toBeVisible();
|
||||
await expect(page.getByText("Interface preferences for this session")).toBeVisible();
|
||||
|
||||
await page.waitForTimeout(2_600);
|
||||
await expect(page.getByRole("status")).toHaveText("Preferences changed for this session only");
|
||||
await expect(page.getByText("Saved automatically in this browser", { exact: true })).toBeHidden();
|
||||
|
||||
await page.reload();
|
||||
await expect(page.getByRole("radio", { name: /Comfortable/i })).toBeChecked();
|
||||
});
|
||||
Reference in new issue
Block a user