// Only YCode is automated. Original measurements are fixed REA artifacts, never direct original CDP. const fs = require('node:fs'), path = require('node:path'), assert = require('node:assert/strict') const { app, BrowserWindow } = require('electron') app.disableHardwareAcceleration() app.commandLine.appendSwitch('use-angle', 'swiftshader'); app.commandLine.appendSwitch('disable-gpu-compositing') const root = path.resolve(__dirname, '..'), output = path.join(root, '.tmp/source-select-native-20261016') assert.ok(output.startsWith(path.join(root, '.tmp') + path.sep)); fs.mkdirSync(output, { recursive: true }) app.setPath('userData', path.join(output, 'user-data')) const modulePath = name => JSON.stringify(path.join(root, name).replaceAll('\\', '/')) fs.writeFileSync(path.join(output, 'fixture.tsx'), `import React,{useState} from 'react';import{createRoot}from'react-dom/client'; import Panel from ${modulePath('src/renderer/src/components/ModelSettingsPanel')}; import Select from ${modulePath('src/renderer/src/components/source-select/SourceSelect')}; import ${modulePath('src/renderer/src/styles/tokens.css')}; import ${modulePath('src/renderer/src/styles/app.css')}; function Fixture(){const[models,setModels]=useState([]),[standalone,setStandalone]=useState(false),[value,setValue]=useState('first');window.__selectQA??={tests:[],saves:[],deletes:[]};return <>{window.__selectQA.tests.push(input);return{success:true,message:'Local fixture test completed'}}} onSave={async input=>{window.__selectQA.saves.push(input);setModels(list=>[...list.filter(m=>m.id!==input.id),{...input,hasApiKey:!!input.apiKey}])}} onDelete={async id=>{window.__selectQA.deletes.push(id);setModels(list=>list.filter(m=>m.id!==id))}}/>{standalone&&