Release Vulpes OS 2.7-preview.22

This commit is contained in:
OverSu 2026-10-22 20:42:26 +02:00
commit a138f97877
294 changed files with 515786 additions and 187 deletions

View file

@ -0,0 +1,21 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import vm from 'node:vm';
import {readFileSync} from 'node:fs';
const source=readFileSync(new URL('../host/gaia-compat.js',import.meta.url),'utf8');
const setupSource=source.slice(source.indexOf(' let language ='),source.indexOf(' const observers ='));
const changeSource=source.match(/if \(data.key === 'language.current'\) \{[\s\S]*?\n \}/)[0];
function setup(){
let reply;const events=[];
const context=vm.createContext({navigator:{language:'fr'},Event,dispatchEvent:e=>events.push(e.type),call:()=>new Promise(r=>{reply=r;})});
vm.runInContext(setupSource,context);
return {context,events,reply,change(value){context.data={key:'language.current',value};vm.runInContext(changeSource,context);}};
}
test('a delayed startup locale cannot undo a newer Settings language',async()=>{
const s=setup();s.change('en-US');s.reply('fr');await new Promise(r=>setImmediate(r));
assert.equal(s.context.navigator.language,'en-US');assert.deepEqual(s.events,['languagechange']);
});
test('initial locale still initializes a newly opened app',async()=>{
const s=setup();s.reply('el');await new Promise(r=>setImmediate(r));
assert.equal(s.context.navigator.language,'el');assert.deepEqual(Array.from(s.context.navigator.languages),['el']);
});