Files

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!');