test-autotest-metadata-selector-preference.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { TestGenerator } from './src/tools/autotest/test-generator.js';
  2. function assert(condition, message) {
  3. if (!condition) throw new Error(message);
  4. }
  5. console.log('\n── AutoTest Metadata Selector Preference ──');
  6. const generator = new TestGenerator(null);
  7. const cases = generator._preferMetadataIdsForActions(
  8. [{
  9. id: 'WF_001',
  10. page: '/CourseList',
  11. steps: [
  12. { action: 'click', selector: 'text=确定', description: 'Click 确定 to submit and create course' },
  13. { action: 'fill', selector: 'input[type="text"]', description: 'Fill 课程名称 field' },
  14. { action: 'assert_visible', selector: 'text=课程管理' },
  15. ],
  16. }],
  17. {
  18. interactiveElements: [
  19. { section: '/CourseList', instanceId: 'submitForm', type: 'button', label: '确定', name: 'SubmitForm' },
  20. { section: '/CourseList', instanceId: 'formTitleInput', type: 'input', label: '课程名称', name: 'FormTitleInput' },
  21. ],
  22. },
  23. [{ instanceId: 'navItem', text: '课程管理', position: 'sidebar' }]
  24. );
  25. assert(cases[0].steps[0].selector === 'vlid:submitForm', 'button click should prefer vlid selector from metadata');
  26. assert(cases[0].steps[1].selector === 'vlid:formTitleInput input', 'fill should prefer vlid input selector from metadata');
  27. assert(cases[0].steps[2].selector === 'text=课程管理', 'assertions should keep text selectors');
  28. console.log('PASS test-autotest-metadata-selector-preference.js');