Jest tooling for trpc. This library does not mock the trpc client nor uses an trpc caller to test your trpc router, it actually servers a test trpc server and actually make the requests to it.
In most cases you should test your router using a caller to test your router function directly, but if you want to tests the whole integration and find useful test your app as if it was the client calling it this is the library for you.
npm install @universal-packages/trpc-jest
Add the following to your jest.config.js
or where you configure Jest:
module.exports = {
setupFilesAfterEnv: ['@universal-packages/trpc-jest']
}
Starts a new trpc server for the given router. Call this at teh top of your file. This will run a server to be used by all test cases.
import { appRouter } from './appRouter'
trpcJest.runTrpcServer(appRouter)
it('should be called', async () => {
...
})
Prepares a trpc client for the given router. Call your endpoint functions using this client.
import { appRouter } from './appRouter'
trpcJest.runTrpcServer(appRouter)
it('should be called', async () => {
const result = await trpcJest.client(appRouter).getUsers.query()
})
Sets the path of the server, this is the path that will be used to make requests to the server.
trpcJest.setServerPath('/trpc')
Sets the headers of the client to send to the server.
trpcJest.setClientHeaders({ 'x-test': 'test' })
In order for typescript to see the global types you need to reference the types somewhere in your project, normally ./src/globals.d.ts
.
/// <reference types="@universal-packages/trpc-jest" />
This library is developed in TypeScript and shipped fully typed.
The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.