debug_kitchen_default_persistence.js 1.9 KB

1234567891011121314151617181920212223
  1. const { chromium } = require('playwright');
  2. (async () => {
  3. const browser = await chromium.launch({ headless: true, executablePath: 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe' });
  4. const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
  5. const errors = [];
  6. page.on('pageerror', error => errors.push(error.message));
  7. const url = 'http://127.0.0.1:8931/AI%E5%BF%AB%E9%80%9F%E6%8A%A5%E4%BB%B7_Demo2.html?v=kitchen-default-persistence';
  8. await page.goto(url, { waitUntil: 'load' });
  9. await page.evaluate(() => localStorage.removeItem(STORAGE_KEY));
  10. await page.reload({ waitUntil: 'load' });
  11. const defaults = await page.evaluate(() => DEFAULT_RULES.kitchen.map(rule => ({ name: rule.name, method: rule.method, value: Number(rule.value), unit: rule.unit })));
  12. await page.evaluate(() => { switchView('rules'); switchRuleTab('kitchen'); startRuleEdit('kitchen', 0); });
  13. await page.locator('#rule-table-kitchen tr').first().locator('td').nth(2).locator('input').fill('2399');
  14. await page.locator('#rule-table-kitchen tr').first().locator('td').nth(4).locator('input').fill('可编辑说明');
  15. await page.evaluate(() => saveRuleEdit('kitchen', 0));
  16. const beforeReload = await page.evaluate(() => ({ value: DEFAULT_RULES.kitchen[0].value, stored: JSON.parse(localStorage.getItem(STORAGE_KEY)).priceRules.kitchen[0].value }));
  17. await page.reload({ waitUntil: 'load' });
  18. await page.waitForTimeout(500);
  19. const persisted = await page.evaluate(() => ({ value: Number(DEFAULT_RULES.kitchen[0].value), method: DEFAULT_RULES.kitchen[0].method, desc: DEFAULT_RULES.kitchen[0].desc, blankDefaults: DEFAULT_RULES.kitchen.slice(1).every(rule => rule.desc === ''), count: DEFAULT_RULES.kitchen.length }));
  20. console.log(JSON.stringify({ defaults, beforeReload, persisted, errors }));
  21. await browser.close();
  22. })().catch(error => { console.error(error); process.exit(1); });