import assert from 'node:assert/strict';
import test from 'node:test';
import os from 'node:os';
import path from 'node:path';
import { resolveDefaultDatabaseUrl, getAgentInsightHome } from '@/lib/env';
test('DATABASE_URL 归一:未设置 / 空 / 模板默认相对路径 → ~/.agent-insight/data 绝对路径', () => {
const home = `file:${path.join(getAgentInsightHome(), 'data', 'witty_insight.db')}`;
assert.equal(resolveDefaultDatabaseUrl(undefined), home);
assert.equal(resolveDefaultDatabaseUrl(''), home);
assert.equal(resolveDefaultDatabaseUrl('file:../data/witty_insight.db'), home);
});
test('DATABASE_URL 归一:file:~/… 展开波浪号(node/dotenv 自己不展开,只有 bash source 会)', () => {
const expanded = `file:${path.join(os.homedir(), '.agent-insight', 'data', 'witty_insight.db')}`;
assert.equal(resolveDefaultDatabaseUrl('file:~/.agent-insight/data/witty_insight.db'), expanded);
assert.equal(resolveDefaultDatabaseUrl('file:~'), `file:${os.homedir()}`);
});
test('DATABASE_URL 归一:已是绝对路径 / 非 file: → 原样返回', () => {
const abs = 'file:/root/.agent-insight/data/witty_insight.db';
assert.equal(resolveDefaultDatabaseUrl(abs), abs);
assert.equal(resolveDefaultDatabaseUrl('postgresql://h:5432/db'), 'postgresql://h:5432/db');
});