import { TestGenerator } from './src/tools/autotest/test-generator.js';

function assert(condition, message) {
  if (!condition) throw new Error(message);
}

console.log('\n── AutoTest Metadata Selector Preference ──');

const generator = new TestGenerator(null);

const cases = generator._preferMetadataIdsForActions(
  [{
    id: 'WF_001',
    page: '/CourseList',
    steps: [
      { action: 'click', selector: 'text=确定', description: 'Click 确定 to submit and create course' },
      { action: 'fill', selector: 'input[type="text"]', description: 'Fill 课程名称 field' },
      { action: 'assert_visible', selector: 'text=课程管理' },
    ],
  }],
  {
    interactiveElements: [
      { section: '/CourseList', instanceId: 'submitForm', type: 'button', label: '确定', name: 'SubmitForm' },
      { section: '/CourseList', instanceId: 'formTitleInput', type: 'input', label: '课程名称', name: 'FormTitleInput' },
    ],
  },
  [{ instanceId: 'navItem', text: '课程管理', position: 'sidebar' }]
);

assert(cases[0].steps[0].selector === 'vlid:submitForm', 'button click should prefer vlid selector from metadata');
assert(cases[0].steps[1].selector === 'vlid:formTitleInput input', 'fill should prefer vlid input selector from metadata');
assert(cases[0].steps[2].selector === 'text=课程管理', 'assertions should keep text selectors');

console.log('PASS test-autotest-metadata-selector-preference.js');
