consistent use of fakeTimers

This commit is contained in:
Min RK
2024-08-29 14:44:16 +02:00
parent 992bc98ff1
commit 6ccb809a2a
7 changed files with 19 additions and 15 deletions

View File

@@ -22,6 +22,9 @@
"plugins": [] "plugins": []
}, },
"jest": { "jest": {
"fakeTimers": {
"enableGlobally": true
},
"moduleNameMapper": { "moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js", "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less)$": "identity-obj-proxy" "\\.(css|less)$": "identity-obj-proxy"

View File

@@ -45,6 +45,7 @@ beforeEach(() => {
afterEach(() => { afterEach(() => {
useDispatch.mockClear(); useDispatch.mockClear();
jest.runAllTimers();
}); });
test("Renders", async () => { test("Renders", async () => {
@@ -78,15 +79,15 @@ test("Correctly submits admin", async () => {
await act(async () => { await act(async () => {
render(addUserJsx(callbackSpy)); render(addUserJsx(callbackSpy));
}); });
let textarea = screen.getByTestId("user-textarea"); let textarea = screen.getByTestId("user-textarea");
let submit = screen.getByTestId("submit"); let submit = screen.getByTestId("submit");
let check = screen.getByTestId("check"); let check = screen.getByTestId("check");
await userEvent.click(check); await fireEvent.blur(textarea, { target: { value: "foo" } });
fireEvent.blur(textarea, { target: { value: "foo" } }); await fireEvent.click(check);
await fireEvent.click(submit);
await act(async () => { await act(async () => {
await fireEvent.click(submit); await jest.runAllTimers();
}); });
expect(callbackSpy).toHaveBeenCalledWith(["foo"], true); expect(callbackSpy).toHaveBeenCalledWith(["foo"], true);

View File

@@ -44,6 +44,7 @@ beforeEach(() => {
afterEach(() => { afterEach(() => {
useDispatch.mockClear(); useDispatch.mockClear();
jest.runAllTimers();
}); });
test("Renders", async () => { test("Renders", async () => {

View File

@@ -57,6 +57,7 @@ beforeEach(() => {
afterEach(() => { afterEach(() => {
useDispatch.mockClear(); useDispatch.mockClear();
jest.runAllTimers();
}); });
test("Renders", async () => { test("Renders", async () => {

View File

@@ -57,6 +57,7 @@ beforeEach(() => {
afterEach(() => { afterEach(() => {
useSelector.mockClear(); useSelector.mockClear();
jest.runAllTimers();
}); });
test("Renders", async () => { test("Renders", async () => {
@@ -81,8 +82,10 @@ test("Adds user from input to user selectables on button click", async () => {
let submit = screen.getByTestId("submit"); let submit = screen.getByTestId("submit");
const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime }); const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime });
await user.type(input, "bar"); await user.type(input, "bar");
await fireEvent.click(validateUser); await user.click(validateUser);
await act(async () => okPacket); await act(async () => {
await jest.runAllTimers();
});
await act(async () => { await act(async () => {
await fireEvent.click(submit); await fireEvent.click(submit);

View File

@@ -70,6 +70,7 @@ afterEach(() => {
useSelector.mockClear(); useSelector.mockClear();
mockReducers.mockClear(); mockReducers.mockClear();
useSearchParams.mockClear(); useSearchParams.mockClear();
jest.runAllTimers();
}); });
test("Renders", async () => { test("Renders", async () => {

View File

@@ -206,7 +206,6 @@ let mockUpdateUsers = jest.fn(({ offset, limit, sort, name_filter, state }) => {
let searchParams = new URLSearchParams(); let searchParams = new URLSearchParams();
beforeEach(() => { beforeEach(() => {
jest.useFakeTimers();
useSelector.mockImplementation((callback) => { useSelector.mockImplementation((callback) => {
return callback(mockAppState()); return callback(mockAppState());
}); });
@@ -391,8 +390,6 @@ test("Filter according to server status (running/not running)", async () => {
await act(async () => { await act(async () => {
rerender = render(serverDashboardJsx()).rerender; rerender = render(serverDashboardJsx()).rerender;
}); });
console.log(rerender);
console.log("begin test");
const label = "only active servers"; const label = "only active servers";
let handler = screen.getByLabelText(label); let handler = screen.getByLabelText(label);
expect(handler.checked).toEqual(false); expect(handler.checked).toEqual(false);
@@ -430,17 +427,14 @@ test("Shows server details with button click", async () => {
expect(collapse).toHaveClass("collapse"); expect(collapse).toHaveClass("collapse");
expect(collapse).not.toHaveClass("show"); expect(collapse).not.toHaveClass("show");
expect(collapseBar).not.toHaveClass("show"); expect(collapseBar).not.toHaveClass("show");
await fireEvent.click(button);
await act(async () => { await act(async () => {
await fireEvent.click(button);
jest.runAllTimers(); jest.runAllTimers();
}); });
expect(collapse).toHaveClass("collapse show"); expect(collapse).toHaveClass("collapse show");
expect(collapseBar).not.toHaveClass("show"); expect(collapseBar).not.toHaveClass("show");
await fireEvent.click(button);
await act(async () => { await act(async () => {
await fireEvent.click(button);
jest.runAllTimers(); jest.runAllTimers();
}); });
@@ -448,8 +442,8 @@ test("Shows server details with button click", async () => {
expect(collapse).not.toHaveClass("show"); expect(collapse).not.toHaveClass("show");
expect(collapseBar).not.toHaveClass("show"); expect(collapseBar).not.toHaveClass("show");
await fireEvent.click(button);
await act(async () => { await act(async () => {
await fireEvent.click(button);
jest.runAllTimers(); jest.runAllTimers();
}); });