29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
// Copyright (c) 2026 Gordon Bolton. MIT License.
|
|
import { vi, beforeEach, afterEach } from 'vitest';
|
|
import os from 'os';
|
|
import path from 'path';
|
|
import fs from 'fs';
|
|
|
|
// Give each test worker a unique temp DATA_DIR so tokenStore file I/O is
|
|
// fully isolated and doesn't conflict with a running dev server's data/.
|
|
const tmpDir = path.join(os.tmpdir(), `sofarr-test-${process.pid}`);
|
|
if (!fs.existsSync(tmpDir)) fs.mkdirSync(tmpDir, { recursive: true });
|
|
process.env.DATA_DIR = tmpDir;
|
|
|
|
// Disable rate limiters in tests — all supertest requests share 127.0.0.1
|
|
// and would quickly exhaust per-IP windows otherwise.
|
|
process.env.SKIP_RATE_LIMIT = '1';
|
|
|
|
// Suppress console noise during tests (errors still surface via thrown exceptions)
|
|
beforeEach(() => {
|
|
vi.spyOn(console, 'log').mockImplementation(() => {});
|
|
vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
});
|
|
|
|
afterEach(() => {
|
|
// clearAllMocks resets call history and queued return values without
|
|
// restoring mock implementations — use restoreAllMocks only for spies.
|
|
vi.clearAllMocks();
|
|
});
|