78 lines
2.4 KiB
JavaScript
78 lines
2.4 KiB
JavaScript
import { chromium } from 'playwright';
|
|
import { join } from 'path';
|
|
|
|
const BASE = 'http://localhost:8901';
|
|
const DOCS = join(import.meta.dirname, 'docs');
|
|
const VP = { width: 1280, height: 800 };
|
|
|
|
async function screenshot(page, name) {
|
|
await page.waitForTimeout(500);
|
|
await page.screenshot({ path: join(DOCS, name), fullPage: false });
|
|
console.log(`✅ ${name}`);
|
|
}
|
|
|
|
const browser = await chromium.launch();
|
|
|
|
// --- DARK THEME ---
|
|
let ctx = await browser.newContext({ viewport: VP, colorScheme: 'dark' });
|
|
let page = await ctx.newPage();
|
|
|
|
// Dashboard (dark)
|
|
await page.goto(BASE);
|
|
await page.waitForLoadState('networkidle');
|
|
await screenshot(page, 'screenshot-dashboard-dark.png');
|
|
|
|
// Viewer - open MEMORY.md (dark)
|
|
// Click on MEMORY.md in file tree
|
|
await page.click('text=MEMORY.md');
|
|
await page.waitForTimeout(800);
|
|
await screenshot(page, 'screenshot-viewer-dark.png');
|
|
|
|
// Editor mode (dark) - click edit button
|
|
const editBtn = page.locator('button:has-text("Edit"), button[title*="edit"], button[title*="Edit"], [aria-label*="edit"], [aria-label*="Edit"]').first();
|
|
if (await editBtn.count() > 0) {
|
|
await editBtn.click();
|
|
await page.waitForTimeout(500);
|
|
await screenshot(page, 'screenshot-editor-dark.png');
|
|
}
|
|
|
|
// Search panel (dark) - Ctrl+K
|
|
await page.keyboard.press('Control+k');
|
|
await page.waitForTimeout(500);
|
|
// Type something to show results
|
|
await page.keyboard.type('memory');
|
|
await page.waitForTimeout(800);
|
|
await screenshot(page, 'screenshot-search-dark.png');
|
|
await page.keyboard.press('Escape');
|
|
|
|
await ctx.close();
|
|
|
|
// --- LIGHT THEME ---
|
|
ctx = await browser.newContext({ viewport: VP, colorScheme: 'light' });
|
|
page = await ctx.newPage();
|
|
|
|
// Set light theme via localStorage before navigating
|
|
await page.addInitScript(() => {
|
|
localStorage.setItem('theme', 'light');
|
|
});
|
|
await page.goto(BASE);
|
|
await page.waitForLoadState('networkidle');
|
|
// Also try setting it after load
|
|
await page.evaluate(() => {
|
|
localStorage.setItem('theme', 'light');
|
|
document.documentElement.classList.remove('dark');
|
|
document.documentElement.classList.add('light');
|
|
});
|
|
await page.reload();
|
|
await page.waitForLoadState('networkidle');
|
|
await screenshot(page, 'screenshot-dashboard-light.png');
|
|
|
|
// Viewer light
|
|
await page.click('text=MEMORY.md');
|
|
await page.waitForTimeout(800);
|
|
await screenshot(page, 'screenshot-viewer-light.png');
|
|
|
|
await ctx.close();
|
|
await browser.close();
|
|
console.log('🎉 All screenshots done!');
|