Reformat.
This commit is contained in:
@@ -1,93 +1,97 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { Page } from '@playwright/test';
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { Page } from "@playwright/test";
|
||||
|
||||
// src/renderer/src/App.test.tsx
|
||||
|
||||
// Mock data
|
||||
const mockUser = {
|
||||
uid: 'test123',
|
||||
email: 'test@example.com',
|
||||
displayName: 'Test User',
|
||||
uid: "test123",
|
||||
email: "test@example.com",
|
||||
displayName: "Test User",
|
||||
toJSON: () => ({
|
||||
uid: 'test123',
|
||||
email: 'test@example.com',
|
||||
displayName: 'Test User'
|
||||
})
|
||||
uid: "test123",
|
||||
email: "test@example.com",
|
||||
displayName: "Test User",
|
||||
}),
|
||||
};
|
||||
|
||||
test.describe('App Component', () => {
|
||||
test.describe("App Component", () => {
|
||||
let page: Page;
|
||||
|
||||
|
||||
test.beforeEach(async ({ browser }) => {
|
||||
page = await browser.newPage();
|
||||
|
||||
|
||||
// Mock Firebase Auth
|
||||
await page.addInitScript(() => {
|
||||
window.mockAuthState = null;
|
||||
|
||||
|
||||
// Mock the firebase auth module
|
||||
jest.mock('./util/firebase', () => ({
|
||||
jest.mock("./util/firebase", () => ({
|
||||
auth: {
|
||||
onAuthStateChanged: (callback) => {
|
||||
callback(window.mockAuthState);
|
||||
// Return mock unsubscribe function
|
||||
return () => {};
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
// Mock electron IPC
|
||||
window.electron = {
|
||||
ipcRenderer: {
|
||||
send: jest.fn()
|
||||
}
|
||||
send: jest.fn(),
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
await page.goto('/');
|
||||
|
||||
await page.goto("/");
|
||||
});
|
||||
|
||||
test('should show SignInForm when user is not authenticated', async () => {
|
||||
test("should show SignInForm when user is not authenticated", async () => {
|
||||
await page.evaluate(() => {
|
||||
window.mockAuthState = null;
|
||||
});
|
||||
|
||||
|
||||
await page.reload();
|
||||
|
||||
|
||||
// Check if SignInForm is visible
|
||||
const signInForm = await page.locator('form').filter({ hasText: 'Sign In' });
|
||||
const signInForm = await page
|
||||
.locator("form")
|
||||
.filter({ hasText: "Sign In" });
|
||||
await expect(signInForm).toBeVisible();
|
||||
});
|
||||
|
||||
test('should show routes when user is authenticated', async () => {
|
||||
test("should show routes when user is authenticated", async () => {
|
||||
await page.evaluate((user) => {
|
||||
window.mockAuthState = user;
|
||||
}, mockUser);
|
||||
|
||||
|
||||
await page.reload();
|
||||
|
||||
|
||||
// Check if AuthHome is visible
|
||||
const authHome = await page.locator('div:text("AuthHome")');
|
||||
await expect(authHome).toBeVisible();
|
||||
|
||||
|
||||
// Check that electron IPC was called with auth state
|
||||
await expect(page.evaluate(() => {
|
||||
return window.electron.ipcRenderer.send.mock.calls.length > 0;
|
||||
})).resolves.toBe(true);
|
||||
await expect(
|
||||
page.evaluate(() => {
|
||||
return window.electron.ipcRenderer.send.mock.calls.length > 0;
|
||||
}),
|
||||
).resolves.toBe(true);
|
||||
});
|
||||
|
||||
test('should navigate to settings page when authenticated', async () => {
|
||||
test("should navigate to settings page when authenticated", async () => {
|
||||
await page.evaluate((user) => {
|
||||
window.mockAuthState = user;
|
||||
}, mockUser);
|
||||
|
||||
|
||||
await page.reload();
|
||||
|
||||
|
||||
// Navigate to settings
|
||||
await page.click('a[href="/settings"]');
|
||||
|
||||
|
||||
// Check if Settings page is visible
|
||||
const settingsPage = await page.locator('div:text("Settings")');
|
||||
await expect(settingsPage).toBeVisible();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -25,7 +25,7 @@ const App: React.FC = () => {
|
||||
if (user) {
|
||||
window.electron.ipcRenderer.send(
|
||||
ipcTypes.toMain.authStateChanged,
|
||||
user.toJSON()
|
||||
user.toJSON(),
|
||||
);
|
||||
window.electron.ipcRenderer.send(ipcTypes.toMain.watcher.start);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ const Home: React.FC = () => {
|
||||
<Button
|
||||
onClick={(): void => {
|
||||
window.electron.ipcRenderer.send(
|
||||
ipcTypes.toMain.debug.decodeEstimate
|
||||
ipcTypes.toMain.debug.decodeEstimate,
|
||||
);
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -24,7 +24,7 @@ const SignInForm: React.FC = () => {
|
||||
};
|
||||
|
||||
const onFinishFailed: FormProps<FieldType>["onFinishFailed"] = (
|
||||
errorInfo
|
||||
errorInfo,
|
||||
) => {
|
||||
log.log("Failed:", errorInfo);
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useState } from 'react'
|
||||
import { useState } from "react";
|
||||
|
||||
function Versions(): JSX.Element {
|
||||
const [versions] = useState(window.electron.process.versions)
|
||||
const [versions] = useState(window.electron.process.versions);
|
||||
|
||||
return (
|
||||
<ul className="versions">
|
||||
@@ -9,7 +9,7 @@ function Versions(): JSX.Element {
|
||||
<li className="chrome-version">Chromium v{versions.chrome}</li>
|
||||
<li className="node-version">Node v{versions.node}</li>
|
||||
</ul>
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
export default Versions
|
||||
export default Versions;
|
||||
|
||||
@@ -7,5 +7,5 @@ import "./util/ipcRendererHandler";
|
||||
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
|
||||
<React.StrictMode>
|
||||
<App />
|
||||
</React.StrictMode>
|
||||
</React.StrictMode>,
|
||||
);
|
||||
|
||||
@@ -16,7 +16,7 @@ ipcRenderer.on(
|
||||
(event: Electron.IpcRendererEvent, arg) => {
|
||||
console.log("Received test message from main process");
|
||||
console.log(arg);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
ipcRenderer.on(
|
||||
@@ -24,7 +24,7 @@ ipcRenderer.on(
|
||||
async (event: Electron.IpcRendererEvent, arg) => {
|
||||
const token = await auth.currentUser?.getIdToken();
|
||||
ipcRenderer.send(ipcTypes.toMain.user.getTokenResponse, token);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
ipcRenderer.on(
|
||||
@@ -33,7 +33,7 @@ ipcRenderer.on(
|
||||
console.log("Watcher has started");
|
||||
console.log(arg);
|
||||
dispatch(watcherStarted());
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
ipcRenderer.on(
|
||||
@@ -42,7 +42,7 @@ ipcRenderer.on(
|
||||
console.log("Watcher has stopped");
|
||||
console.log(arg);
|
||||
dispatch(watcherStopped());
|
||||
}
|
||||
},
|
||||
);
|
||||
ipcRenderer.on(
|
||||
ipcTypes.toRenderer.watcher.error,
|
||||
@@ -50,5 +50,5 @@ ipcRenderer.on(
|
||||
console.log("Watcher has encountered an error");
|
||||
console.log(error);
|
||||
dispatch(watcherError(error));
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user