npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@vvpgroup/testing

v1.0.3

Published

VVP Testing SDK — единый способ запускать проверки качества и отправлять отчёты в VVP Test Tower

Readme

@vvpgroup/testing

VVP Testing SDK — единый способ запускать проверки качества во внутренних продуктах VVP и отправлять отчёты в VVP Test Tower.

Установка

npm install @vvpgroup/testing
# или
pnpm add @vvpgroup/testing
# или
yarn add @vvpgroup/testing

Быстрый старт

В корне проекта:

npx vvp-test init --add-scripts

Команда создаст vvp-test.config.ts, tests/regression/ и .env.example.

Задайте переменные окружения:

VVP_TEST_TOWER_URL=https://testtower.158-160-184-98.sslip.io
TEST_TOWER_TOKEN=<токен продукта>

Для обратной совместимости SDK также читает PRODUCT_API_TOKEN, а затем VVP_TEST_TOWER_TOKEN, если TEST_TOWER_TOKEN не задан.

Запустите проверки:

npx vvp-test check

Команды CLI

| Команда | Назначение | | --- | --- | | vvp-test init [--add-scripts] | Инициализация проекта: config, tests/regression, .env.example | | vvp-test check [--no-submit] [--trigger <type>] | Все проверки + отчёт в Tower | | vvp-test connect [--attempt <gateKey>]... | Подключение: полный снимок всех проверок и цикл исправлений с Tower | | vvp-test diagnose [--attempt <gateKey>]... | Диагностика: полный снимок всех проверок без изменения CI-публикации | | vvp-test run <type> | Одна проверка без отправки | | vvp-test report | Повторная отправка последнего отчёта | | vvp-test e2e-summary [--file <path>] | Отдельная отправка инвентаризации E2E, по умолчанию .vvp/e2e-summary.md | | vvp-test validate-config | Валидация vvp-test.config.ts | | vvp-test doctor | Диагностика окружения и Tower |

Для connect и diagnose создайте .vvp/manual-interventions.json (вначале достаточно []). После ответа Tower CLI сохраняет полный снимок в .vvp/diagnostic-response.json, а локальные счётчики текущих проблем — в .vvp/diagnostic-state.json. Передавайте --attempt <gateKey> только для проблемы, которую агент действительно пытался исправить. После трёх неудачных итераций по одной проблеме CLI просит добавить запись { "gateKey": "...", "reasonType": "OTHER", "reason": "собственная причина" }; причина никогда не генерируется автоматически. Каждый следующий запрос снова выполняет все настроенные проверки и отправляет полный текущий снимок. Обычные check и report продолжают публиковать отчёты через прежний /api/v1/reports.

Конфигурация

Исследуйте существующие E2E во всех репозиториях и worktree, фактически доступных AI-агенту в окружении продукта, включая другие QA-репозитории. VVP-E2E/projects/<productCode>/ — пример для проверки при наличии доступа, а не граница поиска или prerequisite. Сохраните свободный текст в .vvp/e2e-summary.md. Отсутствие доступа к VVP-E2E останавливает только централизованный запуск и изменения, которым этот доступ нужен; инвентаризация, отправка summary и подготовка артефактов по доступным реализованным тестам продолжаются независимо. До завершения подключения выполните vvp-test e2e-summary; --file задаёт путь относительно корня проекта.

Если реализованные тесты не найдены или реализацию невозможно подтвердить, явно укажите результат и ограничения проверки в summary, отправьте его и передайте человеку только summary с рекомендациями по реализации или доступу. Не создавайте scenario JSON с пустыми или неподтверждёнными сценариями. Только при наличии подтверждённых реализованных сценариев подготовьте отдельный tower-e2e-scenarios.v2.json для предварительного просмотра и импорта человеком: сохраните точные существующие @scenario:<CODE> или предложите стабильные коды, согласуйте tags в пределах разрешённых изменений и используйте безопасные пути относительно исследованного репозитория в testReference. Не переносите и не создавайте тесты ради инвентаризации.

Команда читает UTF-8, применяет trim и проверяет длину 1..20 000 UTF-16 code units. Она отправляет только { summary: string } на POST /api/v1/e2e-summary с токеном продукта, не запускает проверки и не меняет отчёты или диагностическое состояние. HTTP 200 подтверждается полями productId и updatedAt; содержимое summary не выводится. Exit code: 0 при принятии, 1 при ошибке.

SDK экспортирует submitE2eSummary(target, summary, timeoutMs?) и E2eSummarySubmitResult. Результат содержит ok, offline, status, безопасное message, а при успехе — productId и updatedAt. URL остаётся настраиваемым.

import { defineVvpProject } from "@vvpgroup/testing";

export default defineVvpProject({
  productId: "MDM",
  productName: "Master Data Hub",

  checks: {
    typecheck: { command: "pnpm typecheck", mandatory: true, blocking: true },
    lint:      { command: "pnpm lint",      mandatory: true, blocking: true },
    unit:      { command: "pnpm test",      mandatory: true, blocking: true },
  },

  tower: {
    enabled: true,
    url: process.env.VVP_TEST_TOWER_URL,
    token: process.env.TEST_TOWER_TOKEN,
  },
});

Полный справочник: docs/sdk.md

Использование SDK API

import { defineVvpProject, buildReport, SDK_VERSION } from "@vvpgroup/testing";

Лицензия

MIT