Skip to content

Modernize program-test-suite - #547

Draft
Jayden Chan (jayden-chan) wants to merge 5 commits into
masterfrom
jayden/modernize-program-test-suite
Draft

Jayden Chan (jayden-chan) wants to merge 5 commits into
masterfrom
jayden/modernize-program-test-suite

Conversation

@jayden-chan

Copy link
Copy Markdown
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
Copilot AI balanced review requested due to automatic review settings September 17, 2026 18:09
@jayden-chan
Jayden Chan (jayden-chan) marked this pull request as draft September 17, 2026 18:09
This commit was generated by GitHub Actions CI

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants