fc31c6c07a
* Fix link * Move paths to compiler options * Add failing test case * Fix test isolation * Add changeset
84 lines
1.7 KiB
Markdown
84 lines
1.7 KiB
Markdown
# Trigger.dev Testing Package
|
|
|
|
The testing package provides useful helpers to write your own tests in jest and vitest with complete type support.
|
|
|
|
## Usage
|
|
|
|
1. Install the package:
|
|
|
|
```bash
|
|
# npm
|
|
npm install -D @trigger.dev/testing
|
|
|
|
# yarn
|
|
yarn add -D @trigger.dev/testing
|
|
|
|
# pnpm
|
|
pnpm add -D @trigger.dev/testing
|
|
```
|
|
|
|
2. Import the package in a test as follows:
|
|
|
|
```js
|
|
import { toHaveSucceeded, createJobTester } from "@trigger.dev/testing";
|
|
import { expect, vi } from "vitest";
|
|
|
|
expect.extend({ toHaveSucceeded });
|
|
const testJob = createJobTester(vi);
|
|
```
|
|
|
|
3. You can then use it like this:
|
|
|
|
```js
|
|
const jobToTest = client.defineJob({
|
|
id: "test-job",
|
|
name: "Test Job",
|
|
version: "0.1.0",
|
|
trigger: eventTrigger({
|
|
name: "test.trigger",
|
|
}),
|
|
integrations: {
|
|
dummy,
|
|
},
|
|
run: async (payload, io, ctx) => {
|
|
return await io.dummy.doSomething("test-task", {
|
|
foo: payload.foo,
|
|
});
|
|
},
|
|
});
|
|
|
|
const testRun = await testJob(jobToTest, {
|
|
payload: {
|
|
foo: "bar",
|
|
},
|
|
tasks: {
|
|
"test-task": {
|
|
bar: "baz",
|
|
},
|
|
},
|
|
});
|
|
|
|
// job run was successful
|
|
expect(testRun).toHaveSucceeded();
|
|
|
|
// task was called exactly once
|
|
expect(testRun.tasks["test-task"]).toHaveBeenCalledOnce();
|
|
|
|
// task was called with correct params
|
|
expect(testRun.tasks["test-task"]).toHaveBeenCalledWith({ foo: "bar" });
|
|
|
|
// mocked task output was correctly returned
|
|
expect(testRun.tasks["test-task"]).toHaveReturnedWith({ bar: "baz" });
|
|
|
|
// job run has expected output
|
|
expect(testRun.output).toEqual({ bar: "baz" });
|
|
```
|
|
|
|
## More information
|
|
|
|
See the official [Trigger.dev Unit Testing Reference](https://github.com/triggerdotdev/trigger.dev/tree/main/references/unit-testing/) for a working setup with Vitest.
|
|
|
|
## License
|
|
|
|
MIT
|