@open-xchange/codeceptjs-hindsight
v0.1.2
Published
CodeceptJS plugin for reporting test results to Hindsight
Maintainers
Keywords
Readme
@open-xchange/codeceptjs-hindsight
CodeceptJS plugin that reports test results and performance measurements to Hindsight.
Drop-in replacement for the testMetrics plugin — same public interface, but sends data to the Hindsight HTTP API instead of InfluxDB.
Installation
npm install @open-xchange/codeceptjs-hindsightConfiguration
In your codecept.conf.js:
exports.config = {
plugins: {
hindsight: {
require: '@open-xchange/codeceptjs-hindsight',
enabled: true,
url: 'https://hindsight.example.com',
clientId: 'my-service-account',
clientSecret: process.env.HINDSIGHT_CLIENT_SECRET,
tokenEndpoint: 'https://keycloak.example.com/realms/my-realm/protocol/openid-connect/token',
defaultTags: {
client: 'my-project',
},
},
},
}Options
| Option | Required | Description |
|--------|----------|-------------|
| url | Yes (for API mode) | Hindsight API base URL |
| clientId | Yes (for API mode) | OIDC client ID for authentication |
| clientSecret | Yes (for API mode) | OIDC client secret |
| tokenEndpoint | Yes (for API mode) | Keycloak token endpoint URL |
| defaultTags | No | Key-value pairs merged into every request (e.g. client, project) |
When credentials are omitted, the plugin runs in console mode — metrics are collected in memory and printed to stdout after each suite. This is useful for local development.
What gets reported
After each test (event.test.after):
- Feature name, scenario name, pass/fail/skip state, duration
- Branch, project, pipeline ID from
defaultTagsand environment
After each suite (event.suite.after):
- Buffered performance measurements are flushed as a batch
Performance measurements
Use addPerformanceMeasurement() in your tests — the interface is unchanged from the existing testMetrics plugin:
const hindsight = codeceptjs.container.plugins('hindsight')
hindsight.addPerformanceMeasurement('page_load', [
{ type: 'intField', name: 'duration', value: 1234 },
{ type: 'stringField', name: 'page', value: '/inbox' },
], {
tags: { cached: 'false' },
})Authentication
The plugin uses the OIDC client credentials flow. You need a Keycloak service account with access to the Hindsight API audience. The token is cached and automatically refreshed before expiry.
Error handling
API errors and network timeouts are logged as warnings — they never fail the test run.
License
AGPL-3.0-or-later
