Files
SubMiner/src/logger.test.ts
T

58 lines
1.6 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import path from 'node:path';
import { resolveDefaultLogFilePath, setLogRotation } from './logger';
test('resolveDefaultLogFilePath uses APPDATA on windows', () => {
const today = new Date().toISOString().slice(0, 10);
const resolved = resolveDefaultLogFilePath({
platform: 'win32',
homeDir: 'C:\\Users\\tester',
appDataDir: 'C:\\Users\\tester\\AppData\\Roaming',
});
assert.equal(
path.normalize(resolved),
path.normalize(
path.join('C:\\Users\\tester\\AppData\\Roaming', 'SubMiner', 'logs', `app-${today}.log`),
),
);
});
test('resolveDefaultLogFilePath uses .config on linux', () => {
const today = new Date().toISOString().slice(0, 10);
const resolved = resolveDefaultLogFilePath({
platform: 'linux',
homeDir: '/home/tester',
});
assert.equal(
resolved,
path.join('/home/tester', '.config', 'SubMiner', 'logs', `app-${today}.log`),
);
});
test('setLogRotation accepts numeric retention days', () => {
const previous = process.env.SUBMINER_LOG_ROTATION;
const today = new Date().toISOString().slice(0, 10);
setLogRotation(14);
try {
const resolved = resolveDefaultLogFilePath({
platform: 'linux',
homeDir: '/home/tester',
});
assert.equal(
resolved,
path.join('/home/tester', '.config', 'SubMiner', 'logs', `app-${today}.log`),
);
assert.equal(process.env.SUBMINER_LOG_ROTATION, '14');
} finally {
if (previous == null) {
delete process.env.SUBMINER_LOG_ROTATION;
} else {
process.env.SUBMINER_LOG_ROTATION = previous;
}
}
});