const { test } = require('node:test'), assert = require('node:assert/strict'); const { transcript } = require('./car-mode'); test('voice search submits only final results from the result index', () => { const interim = [{transcript:'wrong'}]; interim.isFinal = false; const final = [{transcript:'Amazing Grace'}]; final.isFinal = true; assert.equal(transcript({results:[interim, final]}), 'Amazing Grace'); assert.equal(transcript({resultIndex:2,results:[final,final]}), ''); assert.equal(transcript({}), ''); }); test('lazy Car mode keeps four independent transport buttons and the voice entry in place', () => { const vm=require('node:vm'),fs=require('node:fs'); class Element { constructor(tag){this.tag=tag;this.children=[];this.inert=false;} append(...nodes){for(const node of nodes){node.remove();node.parent=this;this.children.push(node);}} remove(){if(this.parent){this.parent.children=this.parent.children.filter(n=>n!==this);this.parent=null;}} after(node){this.parent.append(node);} setAttribute(name,value){this[name]=value;} focus(){} get isConnected(){return !!this.parent;} } const body=new Element('body'),input=new Element('input'),form=new Element('form'),voice=new Element('button');form.id='searchForm';voice.id='voiceSearchBtn';body.append(form,input,voice); const all=node=>[node,...node.children.flatMap(all)],doc={body,documentElement:{lang:'en'},createElement:tag=>new Element(tag),getElementById:id=>all(body).find(n=>n.id===id)}; let section;const actions=[],root={document:doc,navigator:{},SpeechRecognition:function(){},SettingsSections:{register:s=>section=s}}; vm.runInNewContext(fs.readFileSync(__dirname+'/car-mode.js','utf8'),{window:root,setInterval:()=>1,clearInterval:()=>{}}); root.CarMode.configure({input,action:action=>actions.push(action),state:()=>({paused:true,title:'Song'})}); root.CarMode.open();const overlay=body.children.find(n=>n.className==='car-mode'),controls=overlay.children.find(n=>n.className==='car-controls'); assert.equal(controls.children.length,4);assert.equal(new Set(controls.children).size,4);assert.equal(voice.parent,body); controls.children.forEach(b=>b.onclick());assert.deepEqual(actions,['prev','toggle','back','next']); root.CarMode.close();assert.equal(voice.parent,body);assert.equal(body.inert,false); const panel=new Element('section');body.append(panel);section.render(panel); assert.equal(voice.parent,body,'settings must not steal the voice entry');assert.equal(panel.children.at(-1).textContent,'Enter Car mode'); });