| 1 | import { assert, describe, it } from "@effect/vitest" |
| 2 | import { PrimaryKey, Schema } from "effect" |
| 3 | import { Entity, EntityProxy } from "effect/cluster" |
| 4 | import { Rpc } from "effect/rpc" |
| 5 | |
| 6 | describe("EntityProxy", () => { |
| 7 | it("constructs the original RPC payload", () => { |
| 8 | const Request = Rpc.make("Request", { |
| 9 | payload: { key: Schema.String }, |
| 10 | primaryKey: ({ key }) => key |
| 11 | }) |
| 12 | const entity = Entity.make("Entity", [Request]) |
| 13 | const group = EntityProxy.toRpcGroup(entity) |
| 14 | const rpc = group.requests.get("Entity.Request")! |
| 15 | |
| 16 | const payload = rpc.payloadSchema.make({ |
| 17 | entityId: "entity-id", |
| 18 | payload: { key: "request-id" } |
| 19 | }) |
| 20 | |
| 21 | const originalPayload: unknown = payload.payload |
| 22 | const primaryKey = PrimaryKey.isPrimaryKey(originalPayload) ? PrimaryKey.value(originalPayload) : undefined |
| 23 | assert.strictEqual(primaryKey, "request-id") |
| 24 | }) |
| 25 | }) |