Skip to content

Add unit test coverage for pluginsFromRows in scripts/build-stats.mjs - #272

Open
sakshar2303 wants to merge 1 commit into
get-bb:mainfrom
sakshar2303:test-build-stats-plugins-from-rows
Open

sakshar2303 wants to merge 1 commit into
get-bb:mainfrom
sakshar2303:test-build-stats-plugins-from-rows

Conversation

@sakshar2303

Copy link
Copy Markdown

Resolves #271

Description

In scripts/build-stats.mjs, pluginsFromRows is responsible for parsing raw query results from PostHog, validating plugin IDs, dropping corrupt or invalid rows, and sorting keys to ensure byte-stable JSON generation for HTTP caching.

However, build-stats.mjs lacked automated unit test coverage because its row-parsing logic was defined inline and top-level network queries were evaluated immediately upon loading.

This PR:

  1. Exports ENTRY_ID_PATTERN and pluginsFromRows from scripts/marketplace-lib.mjs (with an optional logger parameter so tests can suppress or assert warning logs cleanly).
  2. Imports pluginsFromRows in scripts/build-stats.mjs.
  3. Adds unit test coverage in test/marketplace.test.mjs testing:
    • Successful parsing of valid rows and preservation of lexicographical key ordering.
    • Dropping malformed rows, non-array rows, uppercase/invalid plugin IDs, non-safe integers, floats, negative install numbers, and non-numeric values.

Local Validation

  • npm test (all 37 tests pass)
  • npm run build
  • npm run gate:v1

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add unit test coverage for install-count row parsing in scripts/build-stats.mjs

1 participant