t3-code-android-nightly/.repos/effect-smol/packages/effect/test/schema/SchemaTransformation.test.ts
Julius Marminge 6f9cea00ae
chore(refs): sync Effect and Alchemy references to 4.0.1 and beta.80 (#16170)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 13:22:30 -07:00

30 lines
1.2 KiB
TypeScript

import { SchemaGetter, SchemaTransformation } from "effect"
import { describe, it } from "vitest"
import { assertFalse, assertTrue, strictEqual } from "../utils/assert.ts"
describe("SchemaTransformation", () => {
it("isTransformation", () => {
assertTrue(SchemaTransformation.isTransformation(SchemaTransformation.passthrough()))
assertFalse(SchemaTransformation.isTransformation({ "~effect/SchemaTransformation/Transformation": false }))
})
it("pipe", () => {
const transformation = SchemaTransformation.passthrough<string>()
const middleware = new SchemaTransformation.Middleware<string, string, never, never, never, never>(
(effect) => effect,
(effect) => effect
)
strictEqual(transformation.pipe((self) => self), transformation)
strictEqual(middleware.pipe((self) => self), middleware)
})
it("makeTransformation preserves an existing transformation", () => {
const transformation = SchemaTransformation.makeTransformation({
decode: SchemaGetter.transform(Number),
encode: SchemaGetter.transform(String)
})
strictEqual(SchemaTransformation.makeTransformation(transformation), transformation)
})
})