Skip to content

Commit b413c55

Browse files
committed
fix: add autostart invoke mocks and fix test queries
1 parent dcffffb commit b413c55

3 files changed

Lines changed: 23 additions & 11 deletions

File tree

frontend/jest.setup.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,17 @@ Object.defineProperty(window, 'matchMedia', {
5252

5353
// Mock the module imports
5454
jest.mock('@tauri-apps/api/core', () => ({
55-
invoke: jest.fn().mockResolvedValue(null),
55+
invoke: jest.fn().mockImplementation((cmd: string) => {
56+
switch (cmd) {
57+
case 'is_autostart_enabled':
58+
return Promise.resolve(false);
59+
case 'enable_autostart':
60+
case 'disable_autostart':
61+
return Promise.resolve(undefined);
62+
default:
63+
return Promise.resolve(null);
64+
}
65+
}),
5666
}));
5767

5868
jest.mock('@tauri-apps/api/app', () => ({

frontend/src/pages/__tests__/PageSanity.test.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ describe('Page Sanity Tests', () => {
1515
});
1616

1717
describe('Settings Page', () => {
18-
test('renders settings page sections', () => {
18+
test('renders settings page sections', async () => {
1919
render(<Settings />);
20+
await screen.findByRole('switch', { name: /launch at startup/i });
2021

2122
expect(screen.getByText('Folder Management')).toBeInTheDocument();
2223
expect(screen.getByText('User Preferences')).toBeInTheDocument();

frontend/src/pages/__tests__/SettingsPage.test.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@ import Settings from '../SettingsPage/Settings';
44

55
describe('Settings Page', () => {
66
// shared setup for all tests
7-
const setupTest = () => {
7+
const setupTest = async () => {
88
const user = userEvent.setup();
99
render(<Settings />);
10+
await screen.findByRole('switch', { name: /launch at startup/i });
1011
return { user };
1112
};
1213

1314
describe('Interaction Sanity', () => {
1415
describe('User Preferences Section', () => {
1516
test('YOLO model dropdown opens and shows options', async () => {
16-
const { user } = setupTest();
17+
const { user } = await setupTest();
1718

1819
const dropdownTrigger = screen.getByRole('button', {
1920
name: /nano|small|medium/i,
@@ -28,9 +29,9 @@ describe('Settings Page', () => {
2829
});
2930

3031
test('GPU Acceleration toggle changes state on click', async () => {
31-
const { user } = setupTest();
32+
const { user } = await setupTest();
3233

33-
const gpuSwitch = screen.getByRole('switch');
34+
const gpuSwitch = screen.getByRole('switch', { name: /gpu acceleration/i });
3435
expect(gpuSwitch).toHaveAttribute('aria-checked', 'false');
3536

3637
await user.click(gpuSwitch);
@@ -49,7 +50,7 @@ describe('Settings Page', () => {
4950
test.each(buttonCases)(
5051
'$label button does not crash when clicked',
5152
async ({ name }) => {
52-
const { user } = setupTest();
53+
const { user } = await setupTest();
5354

5455
const button = screen.getByRole('button', { name });
5556

@@ -71,7 +72,7 @@ describe('Settings Page', () => {
7172
test.each(yoloSelectionCases)(
7273
'selecting $expectedText updates dropdown display',
7374
async ({ selectOption, expectedText }) => {
74-
const { user } = setupTest();
75+
const { user } = await setupTest();
7576

7677
const dropdownTrigger = screen.getByRole('button', { name: /nano/i });
7778
expect(dropdownTrigger).toHaveTextContent('Nano');
@@ -88,7 +89,7 @@ describe('Settings Page', () => {
8889
);
8990

9091
test('dropdown can be reopened after selection', async () => {
91-
const { user } = setupTest();
92+
const { user } = await setupTest();
9293

9394
const dropdownTrigger = screen.getByRole('button', { name: /nano/i });
9495
await user.click(dropdownTrigger);
@@ -102,9 +103,9 @@ describe('Settings Page', () => {
102103

103104
describe('GPU Acceleration Toggle', () => {
104105
test('toggle cycles through ON/OFF states', async () => {
105-
const { user } = setupTest();
106+
const { user } = await setupTest();
106107

107-
const gpuSwitch = screen.getByRole('switch');
108+
const gpuSwitch = screen.getByRole('switch', { name: /gpu acceleration/i });
108109
expect(gpuSwitch).toHaveAttribute('aria-checked', 'false');
109110

110111
await user.click(gpuSwitch);

0 commit comments

Comments
 (0)