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

@testgorilla/e2e-framework

v0.1.2

Published

Shared Playwright e2e framework: base API client, config/environment resolver, timeouts, logging. Consumed by tgo-qa-automation and product repos that collocate their e2e suites.

Readme

@testgorilla/e2e-framework

Shared Playwright e2e framework extracted from the tgo-qa-automation suite, so product repos (starting with tgo-backend) can collocate their e2e tests while reusing one battle-tested base. Design and migration plan: docs/e2e-test-collocation-plan.md.

The package lives INSIDE playwright/ (not at the repo root) because CI ships only the playwright/ directory into the tgo-playwright runtime image (WORKDIR /playwright) — the suite resolves @testgorilla/e2e-framework/* to ./packages/e2e-framework/src/* via tsconfig paths, so the source must travel with the suite.

Status — Phase 1 (dogfooded by the playwright/ suite)

Extracted so far (see the plan, §5):

| Subpath | Contents | | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | @testgorilla/e2e-framework/core | createBaseTest(base, expect) fixture factory (Cookiebot suppression, console/CSP + CORS monitoring, subscription stubbing, logUserEmail, credits/features mocks, e2eConfig option), applyAuthTokenToLocalStorage, timeouts, Logger/APILogger | | @testgorilla/e2e-framework/config | resolveTgEnvironment(): E2eConfig + a compatibility surface preserving every helpers/config export name (baseURL, talentApiURL(), guards, accounts, rand*Email) | | @testgorilla/e2e-framework/api | The full data-setup/API client tree: BaseAPI core + customer, admin, talent, test-taker, code-runner clients, AssessmentCreation, and the fullFlows orchestrators | | @testgorilla/e2e-framework/stubs | CurrentSubscription with the six plan payloads inlined + the stubSubscription helper | | @testgorilla/e2e-framework/enums | Product-domain enums (tests, candidates, languages, locations, …) | | @testgorilla/e2e-framework/setup | SessionArtifactStore, setup builders (bootstrapAuth, cacheAssessmentsMap, ensureSeedAssessments, writeSetupFailureFlag) and teardown builders (AssessmentArchiver, deleteTeamMembers, deleteCandidatures) | | @testgorilla/e2e-framework/email | IMAP inbox polling, email decoding, the encoded-email flags, and the slow-email-API error flag | | @testgorilla/e2e-framework/templates | Assessment test-combination templates (CandidateInviteAssessmentTests, candidateInviteTestsForEnv()) | | @testgorilla/e2e-framework/auth | Token-based login helpers (loginWithToken, loginAs*), TOTP (getOTP), and the default-password provider seam | | @testgorilla/e2e-framework/db | DbClient transaction wrapper over an injected connection + resetSsoUser (the driver, e.g. mariadb, stays consumer-side) | | @testgorilla/e2e-framework/aws | Opt-in — SSM parameter fetch; @aws-sdk/client-ssm is an optional peer dependency | | @testgorilla/e2e-framework/chargebee | Opt-inChargebeeAPI (plan assignment/cancellation via Chargebee + TG webhook); chargebee-typescript is an optional peer dependency |

Binary upload/camera assets live in the sibling @testgorilla/e2e-assets package (~35 MB — install only if your specs upload files or use the fake camera).

The suite consumes all of it: fixtures/baseFixture.ts layers on createBaseTest, helpers/config is a thin composition root (credential providers + suite-only values), and specs import every shared module from the package subpaths. createBaseTest takes the consumer's test/expect so the framework never loads a second @playwright/test instance.

Opt-in subpaths

/aws and /chargebee keep their SDKs out of every other consumer: the SDKs are declared as optional peer dependencies and marked external in the build, so a repo that never imports those subpaths never installs or loads them. If you do import one, add its SDK to your own devDependencies.

Deliberate changes vs the tgo-qa-automation originals

  • No credential defaults. E2E_PASSWORD / E2E_CANDIDATE_PASSWORD are env-only. The structured accounts.password accessor throws with setup guidance when unset; the compatibility password const degrades to ''.
  • Account index is selectable via E2E_ACCOUNT_INDEX (falls back to the CircleCI CIRCLE_NODE_INDEX behavior, so qa-automation CI is unaffected).
  • Log directory is LOG_DIR (default test-results) instead of sniffing for a playwright/ cwd.

Everything else is a verbatim port — export names and const-vs-function shapes are preserved so consumers migrate with import-path rewrites only.

Usage

import { resolveTgEnvironment, baseURL, ifNotStagingRun } from '@testgorilla/e2e-framework/config';
import { DEFAULT_TIMEOUT, log } from '@testgorilla/e2e-framework/core';
import { BaseAPI } from '@testgorilla/e2e-framework/api';

@playwright/test is a peer dependency (>=1.56 <2).

Credential seams (all env-first, provider-fallback, throw-with-guidance): E2E_PASSWORD / setDefaultE2ePasswordProvider (/auth), E2E_CANDIDATE_PASSWORD / setCandidateEmailPasswordProvider (/email), RECAPTCHA_BYPASS_KEY / setRecaptchaBypassKeyProvider (/config). Chargebee is env-only: CHARGEBEE_TEST_API_KEY, CHARGEBEE_WEBHOOK_USERNAME/PASSWORD.

Develop

npm install          # from the repo root (npm workspaces)
npm run build --workspace @testgorilla/e2e-framework
npm run typecheck --workspace @testgorilla/e2e-framework