t3-code-android-nightly/.repos/effect-smol/packages/tools/openapi-generator/test/JsonSchemaGeneratorRepresentation.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

34 lines
1.1 KiB
TypeScript

import * as JsonSchemaGenerator from "@effect/openapi-generator/JsonSchemaGenerator"
import { assert, describe, it } from "@effect/vitest"
describe("JsonSchemaGenerator representation", () => {
it("preserves patterns in Unicode mode from code generation inputs", () => {
const generator = JsonSchemaGenerator.make()
generator.addSchema("Root", { type: "string", pattern: "^a+$" })
const output = generator.generate("openapi-3.1", {}, false)
assert.include(output, `Schema.isPattern(new RegExp("^a+$", "u"))`)
})
it("emits only reachable definitions", () => {
const generator = JsonSchemaGenerator.make()
generator.addSchema("Root", { $ref: "#/components/schemas/Shared" })
const output = generator.generate("openapi-3.1", {
Shared: { type: "string" },
Unused: { type: "boolean" }
}, false)
assert.strictEqual(
output,
`// non-recursive definitions
export type Shared = string
export const Shared = Schema.String.annotate({ "identifier": "Shared" })
// schemas
export type Root = Shared
export const Root = Shared
`
)
})
})