Modernize program-test-suite - #547
Draft
Jayden Chan (jayden-chan) wants to merge 5 commits into
Draft
Jayden Chan (jayden-chan) wants to merge 5 commits into
Jayden Chan (jayden-chan) wants to merge 5 commits into
Conversation
Jayden Chan (jayden-chan)
commented
Sep 17, 2026
Member
- Migrated from prettier to oxfmt
- Migrated from ESLint to oxlint
- Migrated to TypeScript 7
- Migrated to ES modules
- Migrated to Node 24
- Migrated from Jest to node:test
- Migrated from jest-cucumber to minimalist in-house cucumber runner
- Removed glob dependency
- Removed ts-jest dependency
- Updated all remaining dependencies to non-ancient versions
* Migrated from prettier to oxfmt * Migrated from ESLint to oxlint * Migrated to TypeScript 7 * Migrated to ES modules * Migrated to Node 24 * Migrated from Jest to node:test * Migrated from jest-cucumber to minimalist in-house cucumber runner * Removed glob dependency * Removed ts-jest dependency * Updated all remaining dependencies to non-ancient versions Assisted-by: gpt-5.6-sol • medium via pi.dev
Jayden Chan (jayden-chan)
marked this pull request as draft
September 17, 2026 18:09
Copilot started reviewing on behalf of
Jayden Chan (jayden-chan)
September 17, 2026 18:09
View session
This commit was generated by GitHub Actions CI
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The documented API is unusable, the new runner lacks automated coverage, and @debug lost its state diagnostics.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Modernizes program-test-suite for Node 24, ESM, TypeScript 7, and the native Node test runner.
Changes:
- Replaces Jest/Jest-Cucumber with an in-house Gherkin runner and step registry.
- Migrates formatting, linting, dependencies, and module configuration.
- Updates built-in steps and utilities for the new APIs.
File summaries
| File | Description |
|---|---|
packages/program-test-suite/tsconfig.json |
Configures Node ESM and TypeScript 7. |
packages/program-test-suite/src/world.ts |
Updates imports and typing. |
packages/program-test-suite/src/steps/user.ts |
Migrates user steps to the registry. |
packages/program-test-suite/src/steps/trigger.ts |
Migrates trigger steps and adds live execution. |
packages/program-test-suite/src/steps/rules.ts |
Migrates rule steps. |
packages/program-test-suite/src/steps/referral.ts |
Migrates referral steps. |
packages/program-test-suite/src/steps/misc.ts |
Migrates miscellaneous steps. |
packages/program-test-suite/src/steps/index.ts |
Registers built-in steps through imports. |
packages/program-test-suite/src/steps/events.ts |
Migrates event steps. |
packages/program-test-suite/src/steps/assertions.ts |
Adapts assertions and data tables. |
packages/program-test-suite/src/runner.ts |
Adds the Node/Gherkin test runner. |
packages/program-test-suite/src/registry.ts |
Adds step registration and matching. |
packages/program-test-suite/src/jest.setup.ts |
Removes Jest setup hooks. |
packages/program-test-suite/src/jest.config.ts |
Removes Jest configuration. |
packages/program-test-suite/src/index.ts |
Exposes the new public API. |
packages/program-test-suite/src/faker.ts |
Upgrades Faker and ESM imports. |
packages/program-test-suite/README.md |
Reformats the existing usage example. |
packages/program-test-suite/package.json |
Updates runtime, tooling, scripts, and dependencies. |
packages/program-test-suite/CHANGELOG.md |
Applies formatting. |
packages/program-test-suite/.oxlintrc.json |
Adds Oxlint configuration. |
packages/program-test-suite/.oxfmtrc.json |
Adds Oxfmt configuration. |
packages/program-test-suite/.gitignore |
Ignores TypeScript build metadata. |
Review details
- Files reviewed: 22/23 changed files
- Comments generated: 3
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| "format": "oxfmt", | ||
| "prepublishOnly": "if [ \"$CI\" != \"true\" ]; then echo Error: Publishing manually is not supported. Please use the GitHub action. && exit 1; fi", | ||
| "prepack": "npm run build", | ||
| "test": "SSQT_LOG_LEVEL=emerg node --test __tests__/**/*.ts" |
Comment on lines
+130
to
+131
| if (isDebug) { | ||
| console.debug(`===== Before "${pickle.name}" =====`); |
| // Default program template and program rules to use while testing | ||
| "__tests__/defaults/template.json", | ||
| "__tests__/defaults/rules.json" | ||
| "__tests__/defaults/rules.json", |
This commit was generated by GitHub Actions CI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.