1import * as DenoWorker from "@effect/platform-deno/DenoWorker"
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(
12 DenoWorker.layer(() => new Worker(new URL("./fixtures/rpc-worker.ts", import.meta.url), { type: "module" }))
13 ),
14 Layer.merge(
15 Layer.succeed(RpcServer.Protocol)({
16 supportsAck: true
17 } as any)
18 )
19 )
20 e2eSuite("e2e worker", WorkerClient, false)
21})