Julius Marmingedelegate trimming to schemae5542b78 months agoHistory
58 lines · 1.7 KB · TypeScript
RawDownload
import { assert, it } from "@effect/vitest";import { Effect, Schema } from "effect"; import { ORCHESTRATION_WS_METHODS } from "./orchestration";import { WebSocketRequest } from "./ws"; const decodeWebSocketRequest = Schema.decodeUnknownEffect(WebSocketRequest); it.effect("accepts getTurnDiff requests when fromTurnCount <= toTurnCount", () =>  Effect.gen(function* () {    const parsed = yield* decodeWebSocketRequest({      id: "req-1",      body: {        _tag: ORCHESTRATION_WS_METHODS.getTurnDiff,        threadId: "thread-1",        fromTurnCount: 1,        toTurnCount: 2,      },    });    assert.strictEqual(parsed.body._tag, ORCHESTRATION_WS_METHODS.getTurnDiff);  }),); it.effect("rejects getTurnDiff requests when fromTurnCount > toTurnCount", () =>  Effect.gen(function* () {    const result = yield* Effect.exit(      decodeWebSocketRequest({        id: "req-1",        body: {          _tag: ORCHESTRATION_WS_METHODS.getTurnDiff,          threadId: "thread-1",          fromTurnCount: 3,          toTurnCount: 2,        },      }),    );    assert.strictEqual(result._tag, "Failure");  }),); it.effect("trims websocket request id and nested orchestration ids", () =>  Effect.gen(function* () {    const parsed = yield* decodeWebSocketRequest({      id: " req-1 ",      body: {        _tag: ORCHESTRATION_WS_METHODS.getTurnDiff,        threadId: " thread-1 ",        fromTurnCount: 0,        toTurnCount: 0,      },    });    assert.strictEqual(parsed.id, "req-1");    assert.strictEqual(parsed.body._tag, ORCHESTRATION_WS_METHODS.getTurnDiff);    if (parsed.body._tag === ORCHESTRATION_WS_METHODS.getTurnDiff) {      assert.strictEqual(parsed.body.threadId, "thread-1");    }  }),);