30 lines
1.4 KiB
JavaScript
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}'});
|
|
});
|