import { TestRunner } from './src/tools/autotest/test-runner.js'; function assert(condition, message) { if (!condition) throw new Error(message); } class MissingLocator { async count() { return 0; } async waitFor() { throw new Error('not attached'); } async fill() { throw new Error('should not fill missing locator'); } async click() { throw new Error('should not click missing locator'); } locator() { return this; } first() { return this; } } console.log('\n── AutoTest Strict vlid Fill ──'); const runner = new TestRunner({ baseUrl: 'https://example.test/app' }); let typed = false; runner.page = { keyboard: { async type() { typed = true; }, }, }; runner._resolveSelector = async () => new MissingLocator(); let err = null; try { await runner._executeAction({ action: 'fill', selector: 'vlid:formDescInput input', value: 'abc', }); } catch (error) { err = error; } assert(err, 'strict vlid fill should fail when component id is missing'); assert( String(err.message).includes('component id not found'), 'strict vlid fill should report missing component id' ); assert(!typed, 'strict vlid fill must not fall back to keyboard typing on the active element'); console.log('PASS test-autotest-strict-vlid-fill.js');