UNPKG

@arizeai/phoenix-client

Version:
79 lines (62 loc) 2.19 kB
--- title: "CI Eval Tests: Jest" description: "Wire @arizeai/phoenix-client/jest into a Jest project" --- `@arizeai/phoenix-client/jest` exposes the same API as the Vitest entrypoint but binds to Jest's globals (`describe`, `test`, `it`, `beforeAll`, `afterAll`). ## Setup Create a separate `phoenix.jest.config.cjs`: ```js module.exports = { testMatch: ["**/*.eval.?(c|m)[jt]s"], reporters: ["default", "@arizeai/phoenix-client/jest/reporter"], setupFiles: ["dotenv/config"], testTimeout: 30000, }; ``` - `testMatch` keeps eval suites separate from regular tests. - `reporters` keeps Jest's default reporter and adds the Phoenix summary block at the end of the run. - `setupFiles: ["dotenv/config"]` loads `PHOENIX_HOST`, `PHOENIX_API_KEY`, and other env vars from `.env`. - `testTimeout` is bumped because LLM calls can be slow. <Note> The `jsdom` test environment is not supported. Either omit `testEnvironment` or set it to `"node"`. For TypeScript or ESM use `ts-jest` / `@swc/jest` per Jest's docs. </Note> Add a script to `package.json`: ```json { "scripts": { "eval": "jest --config phoenix.jest.config.cjs" } } ``` ## API ```ts import * as px from "@arizeai/phoenix-client/jest"; ``` The exported names match the Vitest entrypoint exactly: - `describe`, `describe.only`, `describe.skip` - `test`, `test.only`, `test.skip`, `test.each` - `it` (alias for `test`) - `logOutput`, `logAnnotation`, `evaluate` See [CI Eval Tests: Vitest](./ci-evals-vitest) for the full API reference — the surface is identical. The only difference is the import path and the underlying runner. ## Notes - This module reads Jest globals off `globalThis` at suite-declaration time, so importing it outside of a Jest test run will throw with a helpful error message. - Jest's `--bail` flag will short-circuit the experiment; the Phoenix reporter still prints a summary for the suites that ran. <section className="hidden" data-agent-context="source-map" aria-label="Source map"> <h2>Source Map</h2> <ul> <li><code>src/jest/index.ts</code></li> <li><code>src/jest/reporter.ts</code></li> <li><code>src/testing/runner.ts</code></li> </ul> </section>