78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
import { test, expect } from "@playwright/test"
|
|
|
|
const { describe, beforeEach, skip, use } = test
|
|
|
|
function webkitOnly() {
|
|
beforeEach(async ({ browserName }) => {
|
|
if (browserName !== "webkit") skip()
|
|
})
|
|
}
|
|
|
|
describe("when user is on iOS", () => {
|
|
webkitOnly()
|
|
|
|
describe("version 16.4 or higher", () => {
|
|
use({
|
|
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 16_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1",
|
|
})
|
|
|
|
test("and tack up now is not running as a PWA, they are instructed to install tack up now", async ({ page }) => {
|
|
await page.goto("/")
|
|
|
|
const installText = await page.getByText(/Install Tack Up Now!/)
|
|
|
|
await expect(installText).toBeAttached()
|
|
})
|
|
|
|
describe("and tack up now is running as a PWA", () => {
|
|
|
|
beforeEach(async ({ page }) => {
|
|
await page.addInitScript(() => (window.navigator as any)["standalone"] = true)
|
|
})
|
|
|
|
test("and notifications aren't enabled, they are asked to enable notifications", async ({ page, browser }) => {
|
|
await page.goto("/")
|
|
|
|
const notificationText = await page.getByText(/Enable notifications/)
|
|
|
|
await expect(notificationText).toBeAttached()
|
|
})
|
|
|
|
// describe("and notifications are enabled", () => {
|
|
|
|
// beforeEach(async ({ page }) => {
|
|
// await page.addInitScript(() => (window.persmis))
|
|
// })
|
|
|
|
// test("they aren't asked to enable notifications", async ({ browser }) => {
|
|
|
|
// const context = await browser.newContext({
|
|
// permissions: ['notification'],
|
|
// });
|
|
|
|
// const page = await context.newPage()
|
|
// await page.goto("/")
|
|
|
|
// const notificationText = await page.getByText(/Enable notifications/)
|
|
|
|
// await expect(notificationText).not.toBeAttached()
|
|
// })
|
|
// })
|
|
})
|
|
})
|
|
|
|
describe("version 16.3 and under", () => {
|
|
use({
|
|
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1",
|
|
})
|
|
|
|
test("version 16.3 and under they are informed that their iOS version isn't supported", async ({ page }) => {
|
|
await page.goto("/")
|
|
|
|
const sorryText = await page.getByText("Sorry, your device doesn't support Tack Up Now! :(")
|
|
|
|
await expect(sorryText).toBeVisible()
|
|
})
|
|
})
|
|
})
|