Skip to content

Commit 4ccc814

Browse files
committed
Permit the use of firebase emulator for testing mode
1 parent fc380cd commit 4ccc814

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"preview": "vite preview",
88
"package": "svelte-kit sync && svelte-package && publint",
99
"prepublishOnly": "npm run package",
10-
"test": "playwright test",
10+
"test": "firebase emulators:exec --only firestore,storage,auth 'playwright test'",
1111
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
1212
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
1313
"lint": "eslint .",

playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { PlaywrightTestConfig } from '@playwright/test';
22

33
const config: PlaywrightTestConfig = {
44
webServer: {
5-
command: 'npm run build && npm run preview',
5+
command: 'NODE_ENV=ci npm run build && npm run preview',
66
port: 4173
77
},
88
testDir: 'tests',

src/routes/firebase.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const app = initializeApp(firebaseConfig);
1919
export const db = getFirestore(app);
2020
export const auth = getAuth(app);
2121

22-
if (dev) {
22+
if (dev || import.meta.env.MODE === "ci") {
2323
connectAuthEmulator(auth, "http://localhost:9099");
2424
connectFirestoreEmulator(db, "localhost", 8080);
2525

tests/auth.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
import { expect, test, type Page } from "@playwright/test";
22

3-
test.describe("Auth", () => {
3+
test.describe.serial("Auth", () => {
44
let page: Page;
55
test.beforeAll(async ({ browser }) => {
66
page = await browser.newPage();
77
await page.goto("/auth-test");
88
});
99

1010
test("Renders UI conditionally based on auth state", async () => {
11-
expect(page.getByText("Signed In")).not.toBeVisible();
12-
expect(page.getByText("Signed Out")).toBeVisible();
11+
await expect(page.getByText("Signed Out")).toBeVisible();
12+
await expect(page.getByText("Signed In")).toBeHidden();
1313
});
1414

1515
test("User can sign in and out", async () => {
16-
await page.click("text=Sign In");
17-
await page.waitForSelector("text=Sign Out");
18-
await expect(page.getByText("Signed In")).toBeVisible();
16+
await expect(page.getByRole("button", { name: "Sign In" })).toBeVisible();
17+
await page.getByRole("button", { name: "Sign In" }).click({delay: 1000});
18+
await expect(page.getByRole("button", { name: "Sign Out" })).toBeVisible();
1919

20-
await page.click("text=Sign Out");
21-
await page.waitForSelector("text=Sign In");
22-
await expect(page.getByText("Signed In")).not.toBeVisible();
20+
await page.getByRole("button", { name: "Sign Out" }).click();
21+
await expect(page.getByRole("button", { name: "Sign In" })).toBeVisible();
22+
await expect(page.getByText("Signed In")).toBeHidden();
2323
});
2424
});

0 commit comments

Comments
 (0)