20 lines
1.2 KiB
JavaScript
20 lines
1.2 KiB
JavaScript
// Plan 016 harness check: an unknown saved file → contribute → accepted.
|
|
import { chromium } from 'playwright';
|
|
const b = await chromium.launch({ executablePath: process.env.CHROMIUM || '/opt/pw-browsers/chromium-1194/chrome-linux/chrome' });
|
|
const p = await b.newPage();
|
|
await p.goto('http://localhost:8769/');
|
|
const out = await p.evaluate(async () => {
|
|
const bytes = new Uint8Array(await (await fetch('/fixture.mp4')).arrayBuffer());
|
|
const dir = await (await navigator.storage.getDirectory()).getDirectoryHandle('videos', { create: true });
|
|
const w = await (await dir.getFileHandle('upAAAAAAAA9.mp4', { create: true })).createWritable();
|
|
await w.write(bytes); await w.close();
|
|
P2PClient.start({ getSettings: () => ({}) });
|
|
const first = await P2PClient.sync();
|
|
const unknown = await P2PClient.unknownVideos();
|
|
const c = await P2PClient.contribute(unknown[0]);
|
|
const second = await P2PClient.sync();
|
|
return { firstUnknown: first.unknown.length, unknown, contribute: { ok: c.ok, adopted: c.adopted, cidOk: /^[0-9a-f]{64}$/.test(c.cid) }, secondAccepted: second.accepted.length, secondUnknown: second.unknown.length };
|
|
});
|
|
console.log(JSON.stringify(out));
|
|
await b.close();
|