Skip to content

traceloop/jest-opentelemetry

Jest OpenTelemetry

Integeration tests with 10 lines of code

Jest OpenTelemetry allows you to write, build and run integration tests based on OpenTelemetry traces with Jest-like syntax. You can:

  • 🕵️ Test any side-effect in your system: an email was sent, a database was updated, a BI event was reported, etc.
  • 👩‍💻 Run your tests and connect to a local or remote test environment.

All with just a few lines of code.

It's built and maintained by Traceloop under the Apache 2.0 license.

🚀 Getting Started

npm i --save-dev @traceloop/jest-opentelemetry

Then, you can start testing your microservices:

const traceloop = new TraceLoop();

await traceloop.axiosInstance.post('http://my.awesome.website/orders/create');
await traceloop.fetchTraces();

expectTrace(traceloop.serviceByName('emails-service'))
  .toReceiveHttpRequest()
  .ofMethod('POST')
  .withBody({ emailTemplate: 'orderCreated', itemId: '123' });

More info can be found in our docs.

What can you test?

Jest OpenTelemetry can be used to test anything that's happening in your system. We're constantly adding more, and you're welcome to suggest yours.

Service Assertions

Database Assertions

Analytics Reporting Assertions

  • Segment
  • Snowflake
  • BigQuery
  • Posthog

External Systems Assertions

  • SendGrid
  • Stripe

🌱 Contributing

Whether it's big or small, we love contributions ❤️ Check out our guide to see how to get started.

Not sure where to get started? You can:

💚 Community & Support

  • Slack (For live discussion with the community and the Traceloop team)
  • GitHub Discussions (For help with building and deeper conversations about features)
  • GitHub Issues (For any bugs and errors you encounter using Jest OpenTelemetry)
  • Twitter (Get news fast)