19 lines
1.9 KiB
JavaScript
19 lines
1.9 KiB
JavaScript
const {chromium}=require('playwright-core');
|
|
const assert=require('node:assert/strict');
|
|
(async()=>{const browser=await chromium.launch({channel:'chrome',headless:true});try{const page=await browser.newPage({viewport:{width:1440,height:1000}});const errors=[];page.on('pageerror',e=>errors.push(e.message));
|
|
await page.route('**/api/account/session',r=>r.fulfill({json:{user:null}}));
|
|
await page.goto((process.env.STUDIO_TEST_ORIGIN||'http://8.211.154.134:18131')+'/graphic');
|
|
await page.getByRole('button',{name:'添加文字',exact:true}).click();
|
|
await page.getByRole('textbox',{name:'文字内容',exact:true}).fill('设计从这里开始');
|
|
await page.getByRole('button',{name:'添加矩形',exact:true}).click();
|
|
await page.getByRole('button',{name:'撤销',exact:true}).click();
|
|
await page.getByRole('button',{name:'重做',exact:true}).click();
|
|
await page.reload();await page.getByRole('button',{name:'文字',exact:true}).first().waitFor();
|
|
assert.ok(await page.evaluate(()=>localStorage.getItem('studio.graphic.v1').includes('设计从这里开始')));
|
|
const file=page.waitForEvent('download');await page.getByRole('button',{name:'导出 SVG',exact:true}).click();assert.ok((await file).suggestedFilename().endsWith('.svg'));
|
|
await page.getByRole('button',{name:'邮箱登录',exact:true}).click();await page.getByRole('dialog').waitFor();await page.keyboard.press('Escape');await page.getByRole('dialog').waitFor({state:'hidden'});
|
|
await page.screenshot({path:process.env.STUDIO_QA_SCREENSHOT||'graphic-qa.png',fullPage:true});
|
|
await page.setViewportSize({width:390,height:844});assert.equal(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth),false);
|
|
assert.deepEqual(errors,[]);console.log('Graphic editing, history, restore, SVG download, account dialog and mobile overflow checks passed.');
|
|
}finally{await browser.close()}})().catch(e=>{console.error(e);process.exitCode=1});
|