Skip to content

Commit e609491

Browse files
committed
passing test for chat
1 parent 52b2ff7 commit e609491

File tree

6 files changed

+40
-26
lines changed

6 files changed

+40
-26
lines changed

gui/src/components/find/FindWidget.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ import {
1111
useRef,
1212
useState,
1313
} from "react";
14-
import { useSelector } from "react-redux";
1514
import { HeaderButton, Input } from "..";
16-
import { RootState } from "../../redux/store";
1715
import HeaderButtonWithToolTip from "../gui/HeaderButtonWithToolTip";
1816
import { useAppSelector } from "../../redux/hooks";
1917

gui/src/components/mainInput/ContinueInputBox.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@ function ContinueInputBox(props: ContinueInputBoxProps) {
114114
: {};
115115

116116
return (
117-
<div className={`${props.hidden ? "hidden" : ""}`}>
117+
<div
118+
className={`${props.hidden ? "hidden" : ""}`}
119+
data-testid="continue-input-box"
120+
>
118121
<div className={`relative flex flex-col px-2`}>
119122
{props.isMainInput && <Lump />}
120123
<GradientBorder

gui/src/pages/gui/Chat.test.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { renderWithProviders } from "../../util/test/render";
2+
import { screen } from "@testing-library/dom";
3+
import { Chat } from "./Chat";
4+
5+
describe("Chat page test", () => {
6+
it("should render", async () => {
7+
await renderWithProviders(<Chat />);
8+
9+
expect(await screen.findByTestId("continue-input-box")).toBeInTheDocument();
10+
});
11+
});

gui/src/pages/history/history.test.tsx

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,20 @@
11
import { screen } from "@testing-library/dom";
22
import { renderWithProviders } from "../../util/test/render";
33
import HistoryPage from "./index";
4-
import { act } from "@testing-library/react";
5-
6-
const navigateFn = vi.fn();
7-
8-
vi.mock("react-router-dom", async () => {
9-
const original = await vi.importActual("react-router-dom");
10-
return {
11-
...original,
12-
useNavigate: () => navigateFn,
13-
};
14-
});
154

165
describe("history Page test", () => {
17-
it("History text is existed after render", () => {
18-
renderWithProviders(<HistoryPage />);
6+
it("History text is existed after render", async () => {
7+
await renderWithProviders(<HistoryPage />);
198
expect(screen.getByTestId("history-sessions-note")).toBeInTheDocument();
209
});
2110

2211
it("History shows the first item in the list", async () => {
23-
renderWithProviders(<HistoryPage />);
12+
await renderWithProviders(<HistoryPage />);
2413
const sessionElement = await screen.findByText(
2514
"Session 1",
2615
{},
2716
{
28-
timeout: 5000,
17+
timeout: 3000, // There is a 2000ms timeout before the first call to refreshSessionMetadata is called
2918
},
3019
);
3120
expect(sessionElement).toBeInTheDocument();

gui/src/redux/selectors/index.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,5 @@ export const selectUseActiveFile = createSelector(
4747
(defaultContext) => defaultContext?.includes("activeFile" as any),
4848
);
4949

50-
export const selectUseHub = createSelector(
51-
[(state: RootState) => state.config.config.usePlatform],
52-
(usePlatform) => usePlatform,
53-
);
50+
export const selectUseHub = (state: RootState) =>
51+
state.config.config.usePlatform;

gui/src/util/test/render.tsx

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import { MockIdeMessenger } from "../../context/MockIdeMessenger";
1010
import { setupStore } from "../../redux/store";
1111
import { SetupListeners } from "../../App";
1212
import { act } from "@testing-library/react";
13+
import { LumpProvider } from "../../components/mainInput/Lump/LumpContext";
14+
import { MainEditorProvider } from "../../components/mainInput/TipTapEditor";
1315
// As a basic setup, import your same slice reducers
1416

1517
// This type interface extends the default options for render from RTL, as well
@@ -19,10 +21,19 @@ type ExtendedRenderOptions = Omit<RenderOptions, "queries"> & {
1921
routerProps?: RouterProps;
2022
};
2123

22-
export function renderWithProviders(
24+
function setupMocks() {
25+
global.ResizeObserver = vi.fn().mockImplementation(() => ({
26+
observe: vi.fn(),
27+
unobserve: vi.fn(),
28+
disconnect: vi.fn(),
29+
}));
30+
}
31+
32+
export async function renderWithProviders(
2333
ui: React.ReactElement,
2434
extendedRenderOptions: ExtendedRenderOptions = {},
2535
) {
36+
setupMocks();
2637
const ideMessenger = new MockIdeMessenger();
2738

2839
const {
@@ -41,16 +52,20 @@ export function renderWithProviders(
4152
<IdeMessengerProvider messenger={ideMessenger}>
4253
<Provider store={store}>
4354
<AuthProvider>
44-
{children}
45-
<SetupListeners />
55+
<MainEditorProvider>
56+
<LumpProvider>
57+
{children}
58+
<SetupListeners />
59+
</LumpProvider>
60+
</MainEditorProvider>
4661
</AuthProvider>
4762
</Provider>
4863
</IdeMessengerProvider>
4964
</MemoryRouter>
5065
);
5166

5267
let rendered: RenderResult;
53-
act(() => {
68+
await act(async () => {
5469
rendered = render(ui, { wrapper: Wrapper, ...renderOptions });
5570
});
5671

0 commit comments

Comments
 (0)