1import * as BrowserWorker from "@effect/platform-browser/BrowserWorker"
2import { describe } from "@effect/vitest"
3import * as Layer from "effect/Layer"
4import * as RpcClient from "effect/rpc/RpcClient"
5import * as RpcServer from "effect/rpc/RpcServer"
6import { e2eSuite, UsersClient } from "./fixtures/rpc-e2e.ts"
7
8describe("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})