Add Jest for unit testing (incomplete)

This commit is contained in:
2025-11-07 09:50:37 -08:00
parent 8f1dd23b62
commit 24681a7cbf
4 changed files with 4170 additions and 6 deletions

4144
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -32,11 +32,13 @@
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/vite": "^4.1.14",
"@types/node": "^24",
"axios-mock-adapter": "^2.1.0",
"eslint": "^9.38.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-storybook": "^10.0.5",
"eslint-plugin-svelte": "^3.12.4",
"globals": "^16.4.0",
"jest": "^30.2.0",
"prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.0",
"prettier-plugin-tailwindcss": "^0.7.1",

20
src/lib/api.test.ts Normal file
View File

@@ -0,0 +1,20 @@
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
{
constructor()
{
super("");
mock = new MockAdapter(this._axios);
}
}
test('check uptime', async () => {
const api = new HeaptraderAPI();
await api.heartbeat();
});

View File

@@ -3,16 +3,16 @@ import { consola } from 'consola/browser';
import type { Listing, User } from './models';
import { CreateListingRequestSchema, LoginRequestSchema, RegisterRequestSchema, type CreateListingRequest, type LoginRequest, type RegisterRequest } from './requests';
interface RequestError
export interface RequestError
{
message: string;
}
class HeaptraderAPI
export class HeaptraderAPI
{
private _axios: Axios;
private _user?: User;
private _lastUserUpdateTimeMs?: number;
protected _axios: Axios;
protected _user?: User;
protected _lastUserUpdateTimeMs?: number;
constructor(baseURL: string = "http://localhost")
{