aboutsummaryrefslogtreecommitdiff
path: root/test/manual/e2e-test.ts
diff options
context:
space:
mode:
authoramankumarsingh77 <amankumarsingh7702@gmail.com>2026-07-28 20:32:57 +0530
committerAman Kumar <145339995+amankumarsingh77@users.noreply.github.com>2026-08-02 19:12:46 +0530
commit34e5cfdcbe29bbb5f2f46ba54eb67903abd9274d (patch)
treef7b421652a7664d97362a308f4a1288cce2ef5b0 /test/manual/e2e-test.ts
parent91a2fdeff796bae8e87d9146e2d540550f54dd74 (diff)
refactor(test): strip comment noise
Removes suite banners, section dividers, and test-id markers that restate the test names. Keeps one-line notes for the deleted-binary fixture order, the never-arriving event consumer, the absent-vs-undefined key distinction, the unexpected-method-echo rationale, and the real-browser teardown and Local State flush quirks. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'test/manual/e2e-test.ts')
-rw-r--r--test/manual/e2e-test.ts33
1 files changed, 0 insertions, 33 deletions
diff --git a/test/manual/e2e-test.ts b/test/manual/e2e-test.ts
index 963efaf..659409f 100644
--- a/test/manual/e2e-test.ts
+++ b/test/manual/e2e-test.ts
@@ -1,11 +1,3 @@
-/**
- * End-to-end integration test: full daemon pipeline.
- *
- * Starts the daemon (IpcServer + CdpBridge), connects via DaemonTransport,
- * exercises the full CDP request/response/event lifecycle.
- *
- * Run: npx tsx test/manual/e2e-test.ts
- */
import { createIpcServer } from "../../src/daemon/server";
import { createCdpBridge, type SendToClient } from "../../src/daemon/bridge";
import { createDaemonTransport } from "../../src/cdp/daemon-transport";
@@ -21,15 +13,12 @@ const check = (cond: boolean, label: string) => {
};
async function main() {
- // Clean up stale socket
try { unlinkSync(DAEMON_SOCKET_PATH); } catch {}
- // ── Start daemon ───────────────────────────────────────────────────────
console.log("Starting daemon (IpcServer + CdpBridge)...");
const ipcServer = createIpcServer();
const cdpBridge = createCdpBridge();
- // Wire IpcServer ↔ CdpBridge
ipcServer.onMessage((msg, client) => {
if (msg.type !== "request") return;
const send: SendToClient = (cid, resp) => ipcServer.send(cid, resp);
@@ -45,10 +34,7 @@ async function main() {
await ipcServer.start();
console.log("Daemon started ✓");
- // The bridge will try to connect to Chrome — might fail, that's ok for
- // this test. We'll simulate CDP responses from the server side.
- // ── Connect pi client via DaemonTransport ──────────────────────────────
console.log("\nConnecting pi client (DaemonTransport)...");
const transport = createDaemonTransport("pi-e2e-test");
@@ -56,17 +42,11 @@ async function main() {
check(connectResult.success, `Client connect: ${connectResult.success ? "ok" : connectResult.error.message}`);
check(transport.state() === "open", "Transport state is open");
- // ── Test 1: Request → simulated CDP response ───────────────────────────
- // The IpcServer's onMessage handler forwards requests to the bridge.
- // The bridge tries to send to Chrome (which may be down). For this test,
- // we intercept at the IpcServer level and simulate CDP responses.
- // Override the message handler to simulate CDP responses directly.
let rawRequests: WireRequest[] = [];
ipcServer.onMessage((msg, client) => {
if (msg.type === "request") {
rawRequests.push(msg);
- // Simulate a CDP success response
ipcServer.send(client.id, {
type: "response",
id: msg.id,
@@ -85,13 +65,11 @@ async function main() {
check(rawRequests.length === 1, "Server received exactly 1 request");
check(rawRequests[0]!.method === "Page.navigate", "Correct method forwarded");
- // ── Test 2: Request with sessionId ─────────────────────────────────────
rawRequests.length = 0;
const res2 = await transport.request("Runtime.evaluate", { expression: "1+1" }, { sessionId: "session-abc" });
check(res2.success, "Session-scoped request succeeded");
check(rawRequests[0]?.sessionId === "session-abc", "SessionId forwarded correctly");
- // ── Test 3: Multiple parallel requests ─────────────────────────────────
rawRequests.length = 0;
const [r3a, r3b, r3c] = await Promise.all([
transport.request("Target.getTargets", {}),
@@ -101,7 +79,6 @@ async function main() {
check(r3a.success && r3b.success && r3c.success, "All 3 parallel requests succeeded");
check(rawRequests.length === 3, "Server received all 3 requests");
- // ── Test 4: Events ─────────────────────────────────────────────────────
const eventPromise = new Promise<string | null>((resolve) => {
const timeout = setTimeout(() => resolve(null), 2000);
(async () => {
@@ -113,7 +90,6 @@ async function main() {
})();
});
- // Simulate a CDP event broadcast from the daemon
ipcServer.broadcast({
type: "event",
method: "Target.targetCreated",
@@ -123,33 +99,24 @@ async function main() {
const eventMethod = await eventPromise;
check(eventMethod === "Target.targetCreated", `Event received: ${eventMethod ?? "TIMEOUT"}`);
- // ── Test 5: Session persistence (detach simulation) ────────────────────
- // Simulate a session shutdown: close the transport, then reconnect.
- // The transport.close() sends deregister, server cleans up.
await transport.close();
check(transport.state() === "closed", "Transport closed");
- // Small delay for server cleanup
await new Promise(r => setTimeout(r, 500));
- // Reconnect — simulates next pi session
const reconnectResult = await transport.connect("");
check(reconnectResult.success, "Transport reconnected (simulated session restart)");
- // Send a request through the reconnected transport
const res4 = await transport.request("Target.getTargets", {});
check(res4.success, "Request after reconnect succeeded");
check(transport.state() === "open", "Transport state is open after reconnect");
- // ── Test 6: Server-side client count ───────────────────────────────────
check(ipcServer.clientCount() === 1, "Server reports 1 connected client");
- // ── Test 7: Client disconnect cleanup ──────────────────────────────────
await transport.close();
await new Promise(r => setTimeout(r, 500));
check(ipcServer.clientCount() === 0, "Server reports 0 clients after disconnect");
- // ── Cleanup ────────────────────────────────────────────────────────────
await ipcServer.stop();
console.log("\nDaemon stopped ✓");