open-index/open-npm huggingface dataset:
npm package: @sentinel-one/testcafe-reporter-html
Description: The HTML reporter for TestCafe
Author: SentinelOne
Latest version: 1.4.5

[<img width="110" src="https://avatars3.githubusercontent.com/u/38539999?s=200&v=4g" />](https://picuscreative.com)

# testcafe-reporter-html

PICUS' HTML reporter generator for TestCafe automated tests. It provides an HTML report of a TestCafe task(s) execution, as well as feedback on the errors, if these occurred. Also it provides an easy way to view the screenshots from failing tests.

[<img src="https://img.shields.io/david/picuscreative/testcafe-reporter-html.svg" />](https://david-dm.org/picuscreative/testcafe-reporter-html)
[<img src="https://img.shields.io/david/dev/picuscreative/testcafe-reporter-html.svg" />](https://david-dm.org/picuscreative/testcafe-reporter-html?type=dev)
[![Build Status](https://travis-ci.org/picuscreative/testcafe-reporter-html.svg?branch=master)](https://travis-ci.org/picuscreative/testcafe-reporter-html)

![Testcafé Reporter HTML](./testcafe-reporter-html.gif "Testcafé Reporter HTML")

## Table of Contents

- [Installation and setup](#installation-and-setup)
- [Contributing](#installation-and-setup)

## Installation and setup

### 1. Install package

```sh
$ npm install testcafe-reporter-html
```

### 2. Add the reporter flag to your test task runner

```sh
$ testcafe chrome test_folder/ --reporter html
```

### 3. Configure the output file

By default the html is written to `stdout`. To write the html to a file use the TestCafe build-in method:

```sh
$ testcafe chrome test_folder/ --reporter html:path/to/my/file.html
```

## Contributing

If you'd like to contribute a feature or bugfix: Thanks! To make sure your
fix/feature has a high chance of being included, please read the following
guidelines:

1. Post a [pull request](https://github.com/picuscreative/testcafe-reporter-html/compare/).
2. Make sure there are tests! We will not accept any patch that is not tested.
   It's a rare time when explicit tests aren't needed. If you have questions
   about writing tests for testcafe-reporter-html, please open a
   [GitHub issue](https://github.com/picuscreative/testcafe-reporter-html/issues/new).

Please see [`CONTRIBUTING.md`](./CONTRIBUTING.md) for more details on contributing and running test.

Thank you to all [the contributors](https://github.com/picuscreative/testcafe-reporter-html/graphs/contributors)!

By participating in this project, you agree to abide by the PICUS [code of conduct](https://picuscreative.com/code-of-conduct).

## LICENSE

[MIT License](https://opensource.org/licenses/MIT) - [PICUS](https://picuscreative.com)
npm package: @sentinelai/sentinel-qa
Description: An official Sentinel API client for enqueueing runs, uploading results, and reporting artifacts with a single API key.
Latest version: 0.1.3

# Sentinel Client

Official Sentinel helper that lets you call the hosted API with one API key and zero YAML wiring.

## Features

- Creates runs (`POST /api/v1/runs`) and hosted jobs.
- Uploads Playwright (or any) JSON results (`/runs/:id/tests`) and marks runs as completed (`/runs/:id/complete`).
- Requests signed artifact upload URLs (`/artifacts/upload-urls`) and reports guardrail violations.
- Triggers AI code review jobs, self-heal actions, and visual diffs.
- Exposes a single `SentinelClient` and typed payload helpers.

## Quick start

```ts
import { SentinelClient } from '@sentinelqa/client'

const client = new SentinelClient({
  apiKey: process.env.SENTINEL_API_KEY,
  apiBaseUrl: process.env.SENTINEL_BASE_URL ?? 'https://app.sentinelqa.io'
})

const { runId } = await client.createRun({
  projectId: '...',
  environmentKey: 'prod',
  triggerSource: 'github',
  commitSha: '...',
  branch: 'main'
})

await client.uploadTestResults(runId, {
  tests: [{ name: 'Home page test', status: 'passed' }]
})

await client.completeRun(runId, { status: 'passed' })
```

## Documentation

Visit the Sentinel dashboard to create an API key, then wire `SENTINEL_API_KEY`, `SENTINEL_PROJECT_ID`, `SENTINEL_ENV_KEY` (and optionally `SENTINEL_BASE_URL` if you host on a custom domain) into your CI job. The client takes care of headers, signatures, error formatting, and scope awareness.

> **Note:** Visual diff uploads rely on `FormData`/`Blob` (Node 18+ or browser). Provide polyfills or pass a compatible `fetch`/`FormData` implementation if your runtime is older.
npm package: @sentinelqa/playwright
Description: Playwright config wrapper and reporter for SentinelQA
Latest version: 0.1.7

# @sentinelqa/playwright

Playwright config wrapper and reporter for SentinelQA.

## Install

```bash
npm i -D @sentinelqa/playwright
```

## Usage

```ts
import { defineConfig } from "@playwright/test";
import { withSentinel } from "@sentinelqa/playwright";

export default withSentinel(
  defineConfig({
    reporter: [
      ["line"],
      ["json", { outputFile: "test-results/report.json" }],
      ["html", { outputFolder: "playwright-report", open: "never" }]
    ],
    outputDir: "test-results",
    use: {
      trace: "retain-on-failure",
      screenshot: "only-on-failure",
      video: "retain-on-failure"
    }
  }),
  {
    project: "my-app"
  }
);
```

Set your ingest token in CI:

```bash
SENTINEL_TOKEN=your_project_ingest_token
```

Optional local upload guardrail:

```bash
SENTINEL_UPLOAD_LOCAL=1
```

Then keep your existing Playwright command:

```bash
npx playwright test
```

## What it does

- Preserves existing Playwright JSON and HTML report paths if you already configured them
- Injects JSON and HTML reporters only when they are missing
- Uses your configured `outputDir` for test results when present
- Uploads the detected report and test result paths to Sentinel after the run
- Preserves the same Sentinel link output as the uploader CLI

## Notes

- Uploads run only when `SENTINEL_TOKEN` is set
- CI uploads work on GitHub Actions, GitLab CI, and CircleCI
- Local uploads are disabled by default and require `SENTINEL_UPLOAD_LOCAL=1`
npm package: @sentinelqa/uploader
Description: Sentinel uploader CLI for CI/CD debugging artifacts
Latest version: 0.1.40

# @sentinelqa/uploader

Low-level Sentinel uploader CLI for Playwright artifacts and hosted Sentinel run links.

`@sentinelqa/playwright-reporter` is the recommended integration for most teams.
Use this package only if you need direct CLI control or custom wrapper behavior.

## Install

```bash
npm i -D @sentinelqa/uploader
```

## Usage

```bash
sentinelqa upload --playwright-json-path test-results/report.json
```

Direct upload after tests already ran:

```bash
npx @sentinelqa/uploader upload --playwright-json-path test-results/report.json
```

Universal wrapper for custom commands:

```bash
npx @sentinelqa/uploader run -- <your test command>
```

## Playwright Failure Context Capture (DOM + Mutation Signals)

Add this helper to capture DOM target state and mutation signals on failures:

```ts
import { sentinelCaptureFailureContext } from "@sentinelqa/uploader/playwright";

test.afterEach(async ({ page }, testInfo) => {
  await sentinelCaptureFailureContext(page, testInfo);
});
```

This writes `dom-capture-*.json` to `test-results/sentinel-dom/` and attaches it to the Playwright report so the uploader can associate it with the correct test.

## Environment Variables

- `SENTINEL_TOKEN` (optional; required only for uploading into a specific Sentinel workspace)
- `SENTINEL_TEST_EXIT_CODE` (optional; set automatically by the wrapper)
- `SENTINEL_REQUEST_TIMEOUT_MS` (optional; override API request timeout, default `45000`)
- `SENTINEL_UPLOAD_TIMEOUT_MS` (optional; override artifact upload timeout, default `120000`)

## Optional: BYO S3 (Advanced)

Set these to upload directly to your own bucket:

- `SENTINEL_S3_ENDPOINT` (optional for AWS)
- `SENTINEL_S3_REGION`
- `SENTINEL_S3_BUCKET`
- `SENTINEL_S3_PREFIX` (optional)
- `SENTINEL_S3_ACCESS_KEY_ID`
- `SENTINEL_S3_SECRET_ACCESS_KEY`

## Troubleshooting

**Missing artifacts**
- Ensure Playwright outputs are present:
  - a Playwright JSON report
  - `playwright-report/`
  - `test-results/`

**401 Unauthorized**
- Check `SENTINEL_TOKEN` and project permissions if you are uploading into a workspace.

**Custom app URL override**
- Custom `SENTINEL_URL` or `APP_URL` values are not supported.
- Sentinel uploads always target `https://app.sentinelqa.com`.

**No CI metadata**
- The uploader detects GitLab, GitHub, CircleCI, or local git metadata.

**No failed tests**
- Ensure `@playwright/test` is installed and the JSON reporter is enabled.

**BYO uploads failing**
- Verify `SENTINEL_S3_*` values and permissions.