Jest vs WSO2 Contract Test Runner
Jest
jestjs.ioWSO2 Contract Test Runner
github.comSide by side
| Figure | Jest | WSO2 Contract Test Runner |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · JavaScript Testing Frameworks | 7.7 (#8) | 7.1 (#19) |
| Intended users | The site describes Jest as designed to ensure correctness across any JavaScript codebase. | The README describes a framework for testing live API endpoints against consumer-defined contracts. |
| Purpose | Jest is a JavaScript testing framework focused on simplicity and correctness. | It is a consumer-based contract testing library that calls live REST API endpoints and compares their responses with predefined contract responses. |
Plans
In their own words
Jest
Jest is a free, self-hosted JavaScript testing framework focused on checking correctness. It supports projects using Babel, TypeScript, Node, React, Angular, Vue and other technologies, and aims to run without configuration on most JavaScript projects. Snapshot tests compare rendered output with a saved reference. Tests run in separate processes for parallel execution, while the --coverage flag can collect coverage, including from files without tests. Mock functions and a custom import resolver support replacing objects and observing calls. Interactive watch mode reruns tests related to changed files. Installation guidance covers npm, Yarn, pnpm and Bun. Documentation describes webpack and Parcel use, but states that Vite is unsupported because of plugin-system incompatibilities. With Babel handling TypeScript, Jest transpiles tests without type-checking them during execution. A free plan is listed at free, with no paid plans or usage limits stated.
WSO2 Contract Test Runner
WSO2 Contract Test Runner is a free, Apache-2.0-licensed library for consumer-based testing of live REST API endpoints. It sends requests and compares returned data with expected responses defined in JSON contracts. A contract can include a request, expected response, assertions, and optional post-conditions. Assertions cover status codes, JSON body and header paths, exact values, regular expressions, emptiness, structures, arrays, and objects. Tests run through Docker by mounting contract and configuration files into the documented image workflow. Suites can run contracts before or after tests, with before-suite contracts running synchronously. Post-conditions can place extracted values into suite-scoped or global environment variables, and contracts can pause for a specified number of seconds. The sample setup uses bearer authorization, cookies, a certificate keystore, and a client truststore. XML path support is listed as a todo. Deployment is Linux and self-hosted.