fastify / fastify-cli

Run a Fastify application with one command!
MIT License
657 stars 163 forks source link

Missing types for test helpers in 'fastify-cli/helper', cannot use it with import statement #601

Open shwarcu opened 1 year ago

shwarcu commented 1 year ago

Prerequisites

Fastify version

5.7.1

Plugin version

No response

Node.js version

v18.15.0

Operating system

macOS

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

13.2.1 (22D68)

Description

I am setting up tests for Fastify application. Our codebase and tests are in TypeScript. I try to follow documentation here https://github.com/fastify/fastify-cli#test-helpers but there's no declaration file for fastify-cli I get error Could not find a declaration file for module 'fastify-cli/helper'. or Could not find a declaration file for module 'fastify-cli'. if I try to import anything from the package.

Steps to Reproduce

  1. Setup TypeScript project
  2. Setup some tests in TypeScript for example https://node-tap.org/docs/getting-started
  3. Try to apply guide from https://github.com/fastify/fastify-cli#test-helpers in typescript setup
import { build } from 'fastify-cli/helper';
import tap from 'tap';

tap.test('Responds', (test) => {
  test.end();
});

Expected Behavior

I would like to be able to use test helpers in TypeScript tests by importing it with import statement and have correct typings for it.

I've seen your workaround from here https://github.com/fastify/fastify-cli/pull/554/files but using require doesn't solve the root problem.

mcollina commented 1 year ago

Thanks for reporting! Would you like to send a Pull Request to address this issue? Remember to add unit tests.

g0di commented 1 year ago

Just ended up here as I was looking for the exact same issue. I would like to make a PR but Im unsure on how to properly add the typings definitions into the project as I'm used to write Typescript directly or typings for external libraries.

Should I:

Let me know your preference and I'll take care of this

segevfiner commented 1 year ago

It seems like there are types now, but they are incomplete, saying that build returns any instead of a FastifyInstance.