UNPKG

@typespec/http-server-js

Version:

TypeSpec HTTP server code generator for JavaScript

69 lines (66 loc) 1.89 kB
import { describe, expect, it } from "vitest"; import { isUnspeakable, parseCase } from "../src/util/case.js"; describe("parseCase", () => { it.each([ { input: "HTTPResponse", snakeCase: "http_response", camelCase: "httpResponse", pascalCase: "HttpResponse", upper: "HTTP_RESPONSE", }, { input: "OpenAIContext", snakeCase: "open_ai_context", camelCase: "openAiContext", pascalCase: "OpenAiContext", upper: "OPEN_AI_CONTEXT", }, { input: "_", snakeCase: "_", camelCase: "_", pascalCase: "_", upper: "_" }, { input: "__type", snakeCase: "__type", camelCase: "__type", pascalCase: "__Type", upper: "__TYPE", }, { input: "_Foo", snakeCase: "_foo", camelCase: "_foo", pascalCase: "_Foo", upper: "_FOO" }, { input: "_FooBar", snakeCase: "_foo_bar", camelCase: "_fooBar", pascalCase: "_FooBar", upper: "_FOO_BAR", }, { input: "_FOO_BAR", snakeCase: "_foo_bar", camelCase: "_fooBar", pascalCase: "_FooBar", upper: "_FOO_BAR", }, { input: "ABC123", snakeCase: "abc123", camelCase: "abc123", pascalCase: "Abc123", upper: "ABC123", }, ])("$input", (testCase) => { const result = parseCase(testCase.input); expect(result.snakeCase).toBe(testCase.snakeCase); expect(result.camelCase).toBe(testCase.camelCase); expect(result.pascalCase).toBe(testCase.pascalCase); expect(result.upper.snakeCase).toBe(testCase.upper); }); }); describe("isUnspeakable", () => { it.each([ { name: "", expected: true }, { name: "_", expected: false }, { name: "123abc", expected: true }, { name: "abc123", expected: false }, ])("$name unspeakable: $expected", ({ name, expected }) => { expect(isUnspeakable(name)).toBe(expected); }); });