fastify-type-provider-json-schema-to-ts icon indicating copy to clipboard operation
fastify-type-provider-json-schema-to-ts copied to clipboard

Not showing type error for status codes not in schema

Open SEAN-7 opened this issue 1 year ago • 0 comments

Prerequisites

  • [X] I have written a descriptive issue title
  • [X] I have searched existing issues to ensure the bug has not already been reported

Fastify version

4.25.2

Plugin version

3.0.0

Node.js version

20.10.0

Operating system

macOS

Operating system version (i.e. 20.04, 11.3, 10)

14.3

Description

In my schema, I've specified that the only response code is 201. However, if I write my handler as returning a 200, I don't get a type error:

Steps to Reproduce

import { FastifyPluginAsyncJsonSchemaToTs } from "@fastify/type-provider-json-schema-to-ts"

const plugin: FastifyPluginAsyncJsonSchemaToTs = async function (
    fastify,
    _opts
) {
    fastify.post(
        "/sign-up",
        {
            schema: {
                response: {
                    201: {
                        type: "object",
                        properties: {
                            email: { type: "string" },
                        },
                        required: ["email"],
                    },
                },
            },
        },
        async (_, reply) => {
            return reply.status(200).send() // This should show a type error on status 200 because not in schema
        }
    )
}

export default plugin

Expected Behavior

When using generics, it'll show a type error on 200 which I believe is the desired behaviour.

SEAN-7 avatar Jan 27 '24 21:01 SEAN-7