mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-18 15:33:02 +00:00
sinon clock doesn't seem to help
jest has what we need already
This commit is contained in:
79
jsx/package-lock.json
generated
79
jsx/package-lock.json
generated
@@ -45,7 +45,6 @@
|
|||||||
"jest": "^29.5.0",
|
"jest": "^29.5.0",
|
||||||
"jest-environment-jsdom": "^29.5.0",
|
"jest-environment-jsdom": "^29.5.0",
|
||||||
"prettier": "^2.8.7",
|
"prettier": "^2.8.7",
|
||||||
"sinon": "^15.0.3",
|
|
||||||
"style-loader": "^3.3.2",
|
"style-loader": "^3.3.2",
|
||||||
"webpack": "^5.79.0",
|
"webpack": "^5.79.0",
|
||||||
"webpack-cli": "^5.0.1",
|
"webpack-cli": "^5.0.1",
|
||||||
@@ -2467,29 +2466,6 @@
|
|||||||
"@sinonjs/commons": "^3.0.0"
|
"@sinonjs/commons": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sinonjs/samsam": {
|
|
||||||
"version": "8.0.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@sinonjs/commons": "^2.0.0",
|
|
||||||
"lodash.get": "^4.4.2",
|
|
||||||
"type-detect": "^4.0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"type-detect": "4.0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@sinonjs/text-encoding": {
|
|
||||||
"version": "0.7.2",
|
|
||||||
"dev": true,
|
|
||||||
"license": "(Unlicense OR Apache-2.0)"
|
|
||||||
},
|
|
||||||
"node_modules/@swc/helpers": {
|
"node_modules/@swc/helpers": {
|
||||||
"version": "0.4.14",
|
"version": "0.4.14",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -4385,14 +4361,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/diff": {
|
|
||||||
"version": "5.1.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.3.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/diff-sequences": {
|
"node_modules/diff-sequences": {
|
||||||
"version": "29.4.3",
|
"version": "29.4.3",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@@ -7211,11 +7179,6 @@
|
|||||||
"node": ">=4.0"
|
"node": ">=4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/just-extend": {
|
|
||||||
"version": "4.2.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/kind-of": {
|
"node_modules/kind-of": {
|
||||||
"version": "6.0.3",
|
"version": "6.0.3",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@@ -7310,11 +7273,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/lodash.get": {
|
|
||||||
"version": "4.4.2",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/lodash.merge": {
|
"node_modules/lodash.merge": {
|
||||||
"version": "4.6.2",
|
"version": "4.6.2",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@@ -7523,26 +7481,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nise": {
|
|
||||||
"version": "5.1.4",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@sinonjs/commons": "^2.0.0",
|
|
||||||
"@sinonjs/fake-timers": "^10.0.2",
|
|
||||||
"@sinonjs/text-encoding": "^0.7.1",
|
|
||||||
"just-extend": "^4.0.2",
|
|
||||||
"path-to-regexp": "^1.7.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nise/node_modules/@sinonjs/commons": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"type-detect": "4.0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/node-forge": {
|
"node_modules/node-forge": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@@ -9039,23 +8977,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/sinon": {
|
|
||||||
"version": "15.1.2",
|
|
||||||
"dev": true,
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@sinonjs/commons": "^3.0.0",
|
|
||||||
"@sinonjs/fake-timers": "^10.1.0",
|
|
||||||
"@sinonjs/samsam": "^8.0.0",
|
|
||||||
"diff": "^5.1.0",
|
|
||||||
"nise": "^5.1.4",
|
|
||||||
"supports-color": "^7.2.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/sinon"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sisteransi": {
|
"node_modules/sisteransi": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
@@ -65,7 +65,6 @@
|
|||||||
"jest": "^29.5.0",
|
"jest": "^29.5.0",
|
||||||
"jest-environment-jsdom": "^29.5.0",
|
"jest-environment-jsdom": "^29.5.0",
|
||||||
"prettier": "^2.8.7",
|
"prettier": "^2.8.7",
|
||||||
"sinon": "^15.0.3",
|
|
||||||
"style-loader": "^3.3.2",
|
"style-loader": "^3.3.2",
|
||||||
"webpack": "^5.79.0",
|
"webpack": "^5.79.0",
|
||||||
"webpack-cli": "^5.0.1",
|
"webpack-cli": "^5.0.1",
|
||||||
|
@@ -18,9 +18,6 @@ import regeneratorRuntime from "regenerator-runtime";
|
|||||||
|
|
||||||
import ServerDashboard from "./ServerDashboard";
|
import ServerDashboard from "./ServerDashboard";
|
||||||
import { initialState, reducers } from "../../Store";
|
import { initialState, reducers } from "../../Store";
|
||||||
import * as sinon from "sinon";
|
|
||||||
|
|
||||||
let clock;
|
|
||||||
|
|
||||||
jest.mock("react-redux", () => ({
|
jest.mock("react-redux", () => ({
|
||||||
...jest.requireActual("react-redux"),
|
...jest.requireActual("react-redux"),
|
||||||
@@ -147,7 +144,7 @@ var mockReducers = jest.fn((state, action) => {
|
|||||||
let searchParams = new URLSearchParams();
|
let searchParams = new URLSearchParams();
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
clock = sinon.useFakeTimers();
|
jest.useFakeTimers();
|
||||||
useSelector.mockImplementation((callback) => {
|
useSelector.mockImplementation((callback) => {
|
||||||
return callback(mockAppState());
|
return callback(mockAppState());
|
||||||
});
|
});
|
||||||
@@ -165,7 +162,7 @@ afterEach(() => {
|
|||||||
useSearchParams.mockClear();
|
useSearchParams.mockClear();
|
||||||
useSelector.mockClear();
|
useSelector.mockClear();
|
||||||
mockReducers.mockClear();
|
mockReducers.mockClear();
|
||||||
clock.restore();
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
|
|
||||||
test("Renders", async () => {
|
test("Renders", async () => {
|
||||||
@@ -368,7 +365,7 @@ test("Shows server details with button click", async () => {
|
|||||||
|
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
fireEvent.click(button);
|
fireEvent.click(button);
|
||||||
await clock.tick(400);
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(collapse).toHaveClass("collapse show");
|
expect(collapse).toHaveClass("collapse show");
|
||||||
@@ -376,7 +373,7 @@ test("Shows server details with button click", async () => {
|
|||||||
|
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
fireEvent.click(button);
|
fireEvent.click(button);
|
||||||
await clock.tick(400);
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(collapse).toHaveClass("collapse");
|
expect(collapse).toHaveClass("collapse");
|
||||||
@@ -385,7 +382,7 @@ test("Shows server details with button click", async () => {
|
|||||||
|
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
fireEvent.click(button);
|
fireEvent.click(button);
|
||||||
await clock.tick(400);
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(collapse).toHaveClass("collapse show");
|
expect(collapse).toHaveClass("collapse show");
|
||||||
@@ -670,7 +667,7 @@ test("Search for user calls updateUsers with name filter", async () => {
|
|||||||
userEvent.type(search, "a");
|
userEvent.type(search, "a");
|
||||||
expect(search.value).toEqual("a");
|
expect(search.value).toEqual("a");
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
await clock.tick(400);
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
expect(searchParams.get("name_filter")).toEqual("a");
|
expect(searchParams.get("name_filter")).toEqual("a");
|
||||||
// FIXME: useSelector mocks prevent updateUsers from being called
|
// FIXME: useSelector mocks prevent updateUsers from being called
|
||||||
@@ -701,7 +698,7 @@ test("Interacting with PaginationFooter causes state update and refresh via useE
|
|||||||
let next = screen.getByTestId("paginate-next");
|
let next = screen.getByTestId("paginate-next");
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
fireEvent.click(next);
|
fireEvent.click(next);
|
||||||
await clock.tick(400);
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(searchParams.get("offset")).toEqual("100");
|
expect(searchParams.get("offset")).toEqual("100");
|
||||||
@@ -736,7 +733,7 @@ test("Start server and confirm pending state", async () => {
|
|||||||
|
|
||||||
let mockStartServer = jest.fn(() => {
|
let mockStartServer = jest.fn(() => {
|
||||||
return new Promise(async (resolve) =>
|
return new Promise(async (resolve) =>
|
||||||
clock.setTimeout(() => {
|
setTimeout(() => {
|
||||||
resolve({ status: 200 });
|
resolve({ status: 200 });
|
||||||
}, 100),
|
}, 100),
|
||||||
);
|
);
|
||||||
@@ -784,7 +781,7 @@ test("Start server and confirm pending state", async () => {
|
|||||||
expect(buttons[1]).toBeEnabled();
|
expect(buttons[1]).toBeEnabled();
|
||||||
|
|
||||||
await act(async () => {
|
await act(async () => {
|
||||||
await clock.tick(100);
|
jest.runAllTimers();
|
||||||
});
|
});
|
||||||
expect(mockUpdateUsers.mock.calls).toHaveLength(2);
|
expect(mockUpdateUsers.mock.calls).toHaveLength(2);
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user