| 1 | import * as BrowserWorker from "@effect/platform-browser/BrowserWorker" |
| 2 | import { describe } from "@effect/vitest" |
| 3 | import * as Layer from "effect/Layer" |
| 4 | import * as RpcClient from "effect/rpc/RpcClient" |
| 5 | import * as RpcServer from "effect/rpc/RpcServer" |
| 6 | import { e2eSuite, UsersClient } from "./fixtures/rpc-e2e.ts" |
| 7 | |
| 8 | describe("RpcWorker", () => { |
| 9 | const WorkerClient = UsersClient.layer.pipe( |
| 10 | Layer.provide(RpcClient.layerProtocolWorker({ size: 1 })), |
| 11 | Layer.provide(BrowserWorker.layer(() => new Worker(new URL("./fixtures/rpc-worker.ts", import.meta.url)))), |
| 12 | Layer.merge( |
| 13 | Layer.succeed(RpcServer.Protocol)({ |
| 14 | supportsAck: true |
| 15 | } as any) |
| 16 | ) |
| 17 | ) |
| 18 | e2eSuite("e2e worker", WorkerClient, false) |
| 19 | }) |