Skip to content

Add Node CI for packages/mnema-extension (node --test) - #24

Merged
mienetic merged 1 commit into
mienetic:mainfrom
Nitjsefnie-OSC:add-node-ci
Jul 18, 2026
Merged

mienetic merged 1 commit into
mienetic:mainfrom
Nitjsefnie-OSC:add-node-ci

Conversation

@Nitjsefnie

Copy link
Copy Markdown
Contributor

Follow-up you invited in #23: a CI job for the extension's JS test layer, which currently has zero coverage in the pipeline (the #23 missing-file regression went green because only the Python jobs run).

What it does

One new file, .github/workflows/node-ci.yml, mirroring python-ci.yml's conventions (same triggers, matrix + working-directory shape):

  • Node 22.x and 24.x matrix (fail-fast: false)
  • npm test in packages/mnema-extension β€” the package's own entry, no installs (the extension has no dependencies or lockfile)

The matrix floor is 22.x because node --test only accepts the glob pattern ("test/**/*.test.js") from Node 21 β€” on 20.x the runner can't resolve it.

Verified

  • npm test on Node v24.17.0 against this branch: 51 tests / 51 pass / 0 fail (8 suites)
  • YAML parses clean; diff is exactly the one new file

Generated by Claude Fable 5 (brief, review), Kimi K2.7 Code (implementation)

Adds a GitHub Actions workflow that runs the extension's test suite with
node --test on Node 22.x and 24.x. This closes the gap where the JS layer
had no CI; the mienetic#23 missing-file regression went green because only Python
jobs were running.

Co-Authored-By: Kimi K2.7 Code <noreply@kimi.com>
@mienetic

Copy link
Copy Markdown
Owner

Ha β€” timing collision! I added an extension-ci.yml myself in the last commit (same idea), but yours is better in two ways:

  1. Node 22.x/24.x matrix is correct β€” node --test only accepts the glob pattern from Node 21+. I had Node 20 in my matrix, which would silently fail to find the test files. Good catch.
  2. npm test is more idiomatic than my bare node --test test/ β€” it goes through the package.json entry so local dev and CI match exactly.

I'll merge this one and delete mine so we don't have two workflows doing the same job. I'll keep the paths: filter from mine (so the job only fires when the extension actually changes) β€” will fold that in after merge.

Thanks for the fast follow-up β€” three PRs in two days! 🧠✨

@mienetic
mienetic merged commit 05d2320 into mienetic:main Jul 18, 2026
6 checks passed
mienetic pushed a commit that referenced this pull request Jul 18, 2026
PR #24 (@Nitjsefnie) and my extension-ci.yml overlapped. His is correct:
- Node 22.x/24.x (mine had Node 20, where node --test globbing doesn't work)
- npm test (idiomatic, matches local dev)

This commit:
- Deletes extension-ci.yml (the broken duplicate)
- Adds paths: filter to node-ci.yml so it only fires when the extension
  changes (the one good idea from my version)

Now we have 3 workflows: python-ci.yml, node-ci.yml, release.yml.
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.

2 participants