VulpesOS/tests/search-defaults.test.mjs
2026-10-22 20:42:26 +02:00

30 lines
1.4 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {readFileSync} from 'node:fs';
import {migrateSearchDefaults} from '../services/settings.mjs';
test('old default and cached provider migrate once; explicit choices survive',()=>{
for(const saved of [{},{'search.provider':false}]) {
saved['search.cache']={defaultEngine:'google',version:3};
assert.equal(migrateSearchDefaults(saved),true);
assert.equal(saved['search.provider'],'ddg');
assert.equal(saved['search.cache'],undefined);
saved['search.provider']='bing';saved['search.cache']={version:3};
assert.equal(migrateSearchDefaults(saved),false);
assert.equal(saved['search.provider'],'bing');
assert.deepEqual(saved['search.cache'],{version:3});
}
const custom={'search.provider':'google'};
migrateSearchDefaults(custom);
assert.equal(custom['search.provider'],'google');
});
test('bundled search config uses DuckDuckGo without a SIM-dependent override',()=>{
const config=JSON.parse(readFileSync(new URL('../overrides/shared/js/search_providers.json',import.meta.url)));
assert.equal(config.defaultEngines.defaultEngine,'ddg');
assert.deepEqual(config.simConfigs,{});
assert.deepEqual(config.partnerConfig,{});
const provider=config.search_providers.ddg.search;
assert.equal(provider.url,'https://duckduckgo.com/');
assert.deepEqual(provider.params,{q:'{searchTerms}'});
});