79 lines
2.8 KiB
JavaScript
79 lines
2.8 KiB
JavaScript
import { chromium } from 'playwright';
|
|
|
|
// Use a persistent profile so data survives between runs
|
|
const userDataDir = 'C:/Users/d-chrka/AppData/Local/Temp/playwright-ka-note-profile';
|
|
|
|
const context = await chromium.launchPersistentContext(userDataDir, {
|
|
headless: false,
|
|
});
|
|
|
|
const page = await context.newPage();
|
|
|
|
// Console relay
|
|
page.on('console', msg => {
|
|
const t = msg.text();
|
|
if (!t.includes('[vite]') && !t.includes('Download the React')) console.log('[PAGE]', t);
|
|
});
|
|
|
|
await page.goto('http://localhost:5173', { waitUntil: 'networkidle' });
|
|
await page.waitForTimeout(4000);
|
|
|
|
// List all IDB databases
|
|
const dbs = await page.evaluate(() => indexedDB.databases());
|
|
console.log('IDB databases:', JSON.stringify(dbs));
|
|
|
|
// Try to open KaNoteDB and inspect
|
|
const result = await page.evaluate(() => {
|
|
return new Promise((resolve) => {
|
|
const req = indexedDB.open('KaNoteDB');
|
|
req.onsuccess = (e) => {
|
|
const db = e.target.result;
|
|
const stores = Array.from(db.objectStoreNames);
|
|
resolve({ version: db.version, stores });
|
|
};
|
|
req.onerror = (e) => resolve({ error: String(e.target.error) });
|
|
});
|
|
});
|
|
console.log('KaNoteDB:', JSON.stringify(result));
|
|
|
|
if (result.stores && result.stores.includes('historyEntries')) {
|
|
const history = await page.evaluate(() => {
|
|
return new Promise((resolve) => {
|
|
const req = indexedDB.open('KaNoteDB');
|
|
req.onsuccess = (e) => {
|
|
const db = e.target.result;
|
|
const tx = db.transaction('historyEntries', 'readonly');
|
|
const store = tx.objectStore('historyEntries');
|
|
const all = store.getAll();
|
|
all.onsuccess = () => {
|
|
const matched = all.result.filter(e => e.text && e.text.includes('['));
|
|
resolve({ total: all.result.length, matched: matched.map(e => ({ id: e.id, text: e.text })) });
|
|
};
|
|
};
|
|
});
|
|
});
|
|
console.log('\n=== HISTORY ENTRIES with [ ===');
|
|
console.log('Total:', history.total, '| Matched:', history.matched?.length);
|
|
(history.matched || []).forEach(e => console.log('ID:', e.id, '\nTEXT:', JSON.stringify(e.text), '\n'));
|
|
|
|
const tasks = await page.evaluate(() => {
|
|
return new Promise((resolve) => {
|
|
const req = indexedDB.open('KaNoteDB');
|
|
req.onsuccess = (e) => {
|
|
const db = e.target.result;
|
|
const stores = Array.from(db.objectStoreNames);
|
|
if (!stores.includes('tasks')) { resolve({ error: 'no tasks store', stores }); return; }
|
|
const tx = db.transaction('tasks', 'readonly');
|
|
const store = tx.objectStore('tasks');
|
|
const all = store.getAll();
|
|
all.onsuccess = () => resolve({ tasks: all.result });
|
|
};
|
|
});
|
|
});
|
|
console.log('\n=== TASKS ===');
|
|
if (tasks.error) console.log('ERROR:', tasks.error, tasks.stores);
|
|
else console.log(JSON.stringify(tasks.tasks, null, 2));
|
|
}
|
|
|
|
await context.close();
|