Skip to content

Commit e62a463

Browse files
committed
Minor improvements
1 parent c9ad033 commit e62a463

File tree

3 files changed

+37
-12
lines changed

3 files changed

+37
-12
lines changed

client/src/test/components/basic-functionality.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ const TestButton = ({ onClick }: { onClick?: () => void }) => (
66
<button onClick={onClick}>Test</button>
77
);
88

9-
const TestInput = ({ value, onChange }: { value?: string; onChange?: (e: any) => void }) => (
10-
<input value={value} onChange={onChange} />
9+
const TestInput = ({ value, defaultValue, onChange }: { value?: string; defaultValue?: string; onChange?: (e: any) => void }) => (
10+
<input value={value} defaultValue={defaultValue} onChange={onChange} />
1111
);
1212

1313
const TestList = ({ items }: { items: string[] }) => (
@@ -73,7 +73,7 @@ describe('Basic Component Functionality', () => {
7373
render(
7474
<div>
7575
<TestButton />
76-
<TestInput value="test" />
76+
<TestInput defaultValue="test" />
7777
<TestList items={['A', 'B']} />
7878
</div>
7979
);

client/src/test/components/chat/CreateAllButton.test.tsx

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { render, screen, fireEvent, waitFor } from '@testing-library/react';
1+
import { render, screen, fireEvent, waitFor, act } from '@testing-library/react';
22
import { describe, it, expect, vi } from 'vitest';
33
import { CreateAllButton } from '@/components/chat/CreateAllButton';
44

@@ -14,7 +14,9 @@ describe('CreateAllButton', () => {
1414
const mockOnCreateAll = vi.fn().mockResolvedValue(undefined);
1515
render(<CreateAllButton onCreateAll={mockOnCreateAll} />);
1616

17-
fireEvent.click(screen.getByText('Create All'));
17+
await act(async () => {
18+
fireEvent.click(screen.getByText('Create All'));
19+
});
1820

1921
expect(mockOnCreateAll).toHaveBeenCalledOnce();
2022
});
@@ -23,7 +25,9 @@ describe('CreateAllButton', () => {
2325
const mockOnCreateAll = vi.fn().mockImplementation(() => new Promise(resolve => setTimeout(resolve, 100)));
2426
render(<CreateAllButton onCreateAll={mockOnCreateAll} />);
2527

26-
fireEvent.click(screen.getByText('Create All'));
28+
await act(async () => {
29+
fireEvent.click(screen.getByText('Create All'));
30+
});
2731

2832
expect(screen.getByText('Creating...')).toBeInTheDocument();
2933
expect(screen.getByRole('button')).toBeDisabled();
@@ -37,7 +41,9 @@ describe('CreateAllButton', () => {
3741
const mockOnCreateAll = vi.fn().mockResolvedValue(undefined);
3842
render(<CreateAllButton onCreateAll={mockOnCreateAll} />);
3943

40-
fireEvent.click(screen.getByText('Create All'));
44+
await act(async () => {
45+
fireEvent.click(screen.getByText('Create All'));
46+
});
4147

4248
await waitFor(() => {
4349
expect(screen.getByText('Created')).toBeInTheDocument();
@@ -50,7 +56,9 @@ describe('CreateAllButton', () => {
5056
const mockOnCreateAll = vi.fn().mockRejectedValue(new Error('Create failed'));
5157
render(<CreateAllButton onCreateAll={mockOnCreateAll} />);
5258

53-
fireEvent.click(screen.getByText('Create All'));
59+
await act(async () => {
60+
fireEvent.click(screen.getByText('Create All'));
61+
});
5462

5563
await waitFor(() => {
5664
expect(screen.getByText('Create All')).toBeInTheDocument();
@@ -66,8 +74,22 @@ describe('CreateAllButton', () => {
6674
render(<CreateAllButton onCreateAll={mockOnCreateAll} />);
6775

6876
const button = screen.getByText('Create All');
77+
78+
// First click
6979
fireEvent.click(button);
70-
fireEvent.click(button); // Second click should be ignored
80+
81+
// Immediately try second click while first is processing
82+
fireEvent.click(button);
83+
84+
// Wait for the button to show "Creating..."
85+
await waitFor(() => {
86+
expect(screen.getByText('Creating...')).toBeInTheDocument();
87+
});
88+
89+
// After processing completes, should only have been called once
90+
await waitFor(() => {
91+
expect(screen.getByText('Created')).toBeInTheDocument();
92+
});
7193

7294
expect(mockOnCreateAll).toHaveBeenCalledOnce();
7395
});
@@ -77,14 +99,18 @@ describe('CreateAllButton', () => {
7799
render(<CreateAllButton onCreateAll={mockOnCreateAll} />);
78100

79101
// First click
80-
fireEvent.click(screen.getByText('Create All'));
102+
await act(async () => {
103+
fireEvent.click(screen.getByText('Create All'));
104+
});
81105

82106
await waitFor(() => {
83107
expect(screen.getByText('Created')).toBeInTheDocument();
84108
});
85109

86110
// Try to click again
87-
fireEvent.click(screen.getByText('Created'));
111+
await act(async () => {
112+
fireEvent.click(screen.getByText('Created'));
113+
});
88114

89115
expect(mockOnCreateAll).toHaveBeenCalledOnce(); // Should still be only one call
90116
});

client/src/test/hooks/use-task-api.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ vi.mock("@/api/server", () => ({
1717
TaskApi: vi.fn().mockImplementation(() => ({
1818
getAllTasks: vi.fn(),
1919
getTaskById: vi.fn(),
20-
createTask: vi.fn(),
2120
updateTask: vi.fn(),
2221
deleteTask: vi.fn(),
2322
changeTaskStatus: vi.fn(),

0 commit comments

Comments
 (0)