chore: added missing tests

This commit is contained in:
2026-02-28 22:37:07 +01:00
parent 1dc2994b08
commit ca258ea14d
5 changed files with 403 additions and 22 deletions

View File

@@ -0,0 +1,55 @@
import { describe, it, expect, vi, afterEach } from 'vitest';
import * as os from 'os';
import * as path from 'path';
import { platformConfigPath } from '../../src/cli/platform';
const APP = 'Blogging Desktop Server';
describe('platformConfigPath', () => {
const originalPlatform = process.platform;
const originalEnv = { ...process.env };
afterEach(() => {
Object.defineProperty(process, 'platform', { value: originalPlatform });
process.env = { ...originalEnv };
});
it('returns ~/Library/Application Support/<app> on macOS', () => {
Object.defineProperty(process, 'platform', { value: 'darwin' });
const home = os.homedir();
expect(platformConfigPath()).toBe(path.join(home, 'Library', 'Application Support', APP));
});
it('returns %APPDATA%/<app> on Windows when APPDATA is set', () => {
Object.defineProperty(process, 'platform', { value: 'win32' });
process.env['APPDATA'] = '/mock/AppData/Roaming';
expect(platformConfigPath()).toBe(path.join('/mock/AppData/Roaming', APP));
});
it('falls back to ~/AppData/Roaming/<app> on Windows when APPDATA is unset', () => {
Object.defineProperty(process, 'platform', { value: 'win32' });
delete process.env['APPDATA'];
const home = os.homedir();
expect(platformConfigPath()).toBe(path.join(home, 'AppData', 'Roaming', APP));
});
it('returns ~/.config/<app> on Linux', () => {
Object.defineProperty(process, 'platform', { value: 'linux' });
delete process.env['XDG_CONFIG_HOME'];
const home = os.homedir();
expect(platformConfigPath()).toBe(path.join(home, '.config', APP));
});
it('honours XDG_CONFIG_HOME on Linux', () => {
Object.defineProperty(process, 'platform', { value: 'linux' });
process.env['XDG_CONFIG_HOME'] = '/custom/config';
expect(platformConfigPath()).toBe(path.join('/custom/config', APP));
});
it('treats unknown platforms the same as Linux', () => {
Object.defineProperty(process, 'platform', { value: 'freebsd' });
delete process.env['XDG_CONFIG_HOME'];
const home = os.homedir();
expect(platformConfigPath()).toBe(path.join(home, '.config', APP));
});
});