mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-23 11:55:12 +00:00
New awesome agent primitive
This commit is contained in:
56
skills/webapp-testing/test-helper.js
Normal file
56
skills/webapp-testing/test-helper.js
Normal file
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* Helper utilities for web application testing with Playwright
|
||||
*/
|
||||
|
||||
/**
|
||||
* Wait for a condition to be true with timeout
|
||||
* @param {Function} condition - Function that returns boolean
|
||||
* @param {number} timeout - Timeout in milliseconds
|
||||
* @param {number} interval - Check interval in milliseconds
|
||||
*/
|
||||
async function waitForCondition(condition, timeout = 5000, interval = 100) {
|
||||
const startTime = Date.now();
|
||||
while (Date.now() - startTime < timeout) {
|
||||
if (await condition()) {
|
||||
return true;
|
||||
}
|
||||
await new Promise(resolve => setTimeout(resolve, interval));
|
||||
}
|
||||
throw new Error('Condition not met within timeout');
|
||||
}
|
||||
|
||||
/**
|
||||
* Capture browser console logs
|
||||
* @param {Page} page - Playwright page object
|
||||
* @returns {Array} Array of console messages
|
||||
*/
|
||||
function captureConsoleLogs(page) {
|
||||
const logs = [];
|
||||
page.on('console', msg => {
|
||||
logs.push({
|
||||
type: msg.type(),
|
||||
text: msg.text(),
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
});
|
||||
return logs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Take screenshot with automatic naming
|
||||
* @param {Page} page - Playwright page object
|
||||
* @param {string} name - Base name for screenshot
|
||||
*/
|
||||
async function captureScreenshot(page, name) {
|
||||
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
||||
const filename = `${name}-${timestamp}.png`;
|
||||
await page.screenshot({ path: filename, fullPage: true });
|
||||
console.log(`Screenshot saved: ${filename}`);
|
||||
return filename;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
waitForCondition,
|
||||
captureConsoleLogs,
|
||||
captureScreenshot
|
||||
};
|
||||
Reference in New Issue
Block a user