Mock HTTP requests in unit tests

This commit is contained in:
2025-11-10 16:19:29 -08:00
parent 24681a7cbf
commit 1c9ff77b03
4 changed files with 1522 additions and 7 deletions

6
babel.config.js Normal file
View File

@@ -0,0 +1,6 @@
export default {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
'@babel/preset-typescript',
],
};

1497
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,9 +13,13 @@
"format": "prettier --write .",
"lint": "prettier --check . && eslint .",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
"build-storybook": "storybook build",
"test": "jest"
},
"devDependencies": {
"@babel/core": "^7.28.5",
"@babel/preset-env": "^7.28.5",
"@babel/preset-typescript": "^7.28.5",
"@chromatic-com/storybook": "^4.1.2",
"@eslint/compat": "^1.4.0",
"@eslint/js": "^9.38.0",
@@ -33,6 +37,7 @@
"@tailwindcss/vite": "^4.1.14",
"@types/node": "^24",
"axios-mock-adapter": "^2.1.0",
"babel-jest": "^30.2.0",
"eslint": "^9.38.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-storybook": "^10.0.5",

View File

@@ -1,20 +1,27 @@
import { Axios } from 'axios';
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import { HeaptraderAPI } from './api';
import { expect, jest, test } from '@jest/globals';
let mock: MockAdapter;
class HeaptraderAPITest extends HeaptraderAPI
{
public _mock: MockAdapter;
constructor()
{
super("");
mock = new MockAdapter(this._axios);
this._mock = new MockAdapter(axios);
this.setupMockResponses();
}
setupMockResponses(): void
{
this._mock.onGet("/up").reply(200, {});
}
}
test('check uptime', async () => {
const api = new HeaptraderAPI();
await api.heartbeat();
const api = new HeaptraderAPITest();
const success = await api.heartbeat();
expect(success).toBe(true);
});