Complete dynasty list legacy parity
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
import { chromium } from '@playwright/test';
|
||||
|
||||
const baseUrl = process.env.DYNASTY_REF_URL ?? 'http://127.0.0.1:3410/hwe';
|
||||
const detailId = process.env.DYNASTY_REF_DETAIL_ID ?? '1';
|
||||
|
||||
const browser = await chromium.launch({ headless: true });
|
||||
const page = await browser.newPage({
|
||||
viewport: { width: 1280, height: 900 },
|
||||
deviceScaleFactor: 1,
|
||||
colorScheme: 'dark',
|
||||
locale: 'ko-KR',
|
||||
});
|
||||
|
||||
const measure = async (url) => {
|
||||
await page.goto(url, { waitUntil: 'networkidle' });
|
||||
return page.evaluate(() => {
|
||||
const tables = Array.from(document.querySelectorAll('table')).map((table) => {
|
||||
const rect = table.getBoundingClientRect();
|
||||
const style = getComputedStyle(table);
|
||||
return {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
backgroundImage: style.backgroundImage,
|
||||
borderSpacing: style.borderSpacing,
|
||||
fontFamily: style.fontFamily,
|
||||
fontSize: style.fontSize,
|
||||
lineHeight: style.lineHeight,
|
||||
};
|
||||
});
|
||||
const button = document.querySelector('button');
|
||||
const buttonStyle = button ? getComputedStyle(button) : null;
|
||||
const firstCell = document.querySelector('td');
|
||||
const firstCellStyle = firstCell ? getComputedStyle(firstCell) : null;
|
||||
return {
|
||||
chromium: navigator.userAgent,
|
||||
body: {
|
||||
width: document.body.getBoundingClientRect().width,
|
||||
minWidth: getComputedStyle(document.body).minWidth,
|
||||
margin: getComputedStyle(document.body).margin,
|
||||
fontFamily: getComputedStyle(document.body).fontFamily,
|
||||
fontSize: getComputedStyle(document.body).fontSize,
|
||||
lineHeight: getComputedStyle(document.body).lineHeight,
|
||||
},
|
||||
tables,
|
||||
button: buttonStyle
|
||||
? {
|
||||
height: button.getBoundingClientRect().height,
|
||||
borderWidth: buttonStyle.borderWidth,
|
||||
borderRadius: buttonStyle.borderRadius,
|
||||
backgroundColor: buttonStyle.backgroundColor,
|
||||
color: buttonStyle.color,
|
||||
padding: buttonStyle.padding,
|
||||
fontFamily: buttonStyle.fontFamily,
|
||||
fontSize: buttonStyle.fontSize,
|
||||
lineHeight: buttonStyle.lineHeight,
|
||||
cursor: buttonStyle.cursor,
|
||||
}
|
||||
: null,
|
||||
firstCell: firstCellStyle
|
||||
? {
|
||||
padding: firstCellStyle.padding,
|
||||
borderWidth: firstCellStyle.borderWidth,
|
||||
textAlign: firstCellStyle.textAlign,
|
||||
}
|
||||
: null,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
const output = {
|
||||
list: await measure(`${baseUrl}/a_emperior.php`),
|
||||
detail: await measure(`${baseUrl}/a_emperior_detail.php?select=${detailId}`),
|
||||
};
|
||||
|
||||
if (process.env.FRONTEND_PARITY_ARTIFACT_DIR) {
|
||||
await page.goto(`${baseUrl}/a_emperior.php`, { waitUntil: 'networkidle' });
|
||||
await page.screenshot({
|
||||
path: `${process.env.FRONTEND_PARITY_ARTIFACT_DIR}/dynasty-ref-list.png`,
|
||||
fullPage: true,
|
||||
});
|
||||
if (process.env.DYNASTY_REF_CAPTURE_DETAIL === '1') {
|
||||
await page.goto(`${baseUrl}/a_emperior_detail.php?select=${detailId}`, { waitUntil: 'networkidle' });
|
||||
await page.screenshot({
|
||||
path: `${process.env.FRONTEND_PARITY_ARTIFACT_DIR}/dynasty-ref-detail.png`,
|
||||
fullPage: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
process.stdout.write(`${JSON.stringify(output, null, 2)}\n`);
|
||||
await browser.close();
|
||||
Reference in New Issue
Block a user