Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Add more strongly typed wrapper around test.macro#3883

Merged
mbg merged 3 commits into
maingithub/codeql-action:mainfrom
mbg/test/macro-wrappergithub/codeql-action:mbg/test/macro-wrapperCopy head branch name to clipboard
May 7, 2026
Merged

Add more strongly typed wrapper around test.macro#3883
mbg merged 3 commits into
maingithub/codeql-action:mainfrom
mbg/test/macro-wrappergithub/codeql-action:mbg/test/macro-wrapperCopy head branch name to clipboard

Conversation

@mbg
Copy link
Copy Markdown
Member

@mbg mbg commented May 7, 2026

When defining a test macro using test.macro, the argument types are not strongly enforced when the macro is used with test, test.serial, etc.

This PR adds a makeMacro helper which returns a wrapper around a macro that enforces the argument types.

Replaces #3873.

Risk assessment

For internal use only. Please select the risk level of this change:

  • Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.

Which use cases does this change impact?

Environments:

  • Testing/None - This change does not impact any CodeQL workflows in production.

How did/will you validate this change?

  • Unit tests - I am depending on unit test coverage (i.e. tests in .test.ts files).

If something goes wrong after this change is released, what are the mitigation and rollback strategies?

  • Development/testing only - This change cannot cause any failures in production.

How will you know if something goes wrong after this change is released?

  • Other - Please provide details.

Are there any special considerations for merging or releasing this change?

  • No special considerations - This change can be merged at any time.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Consider adding a changelog entry for this change.
  • Confirm the readme and docs have been updated if necessary.

@mbg mbg requested a review from henrymercer May 7, 2026 14:02
@mbg mbg self-assigned this May 7, 2026
@mbg mbg requested a review from a team as a code owner May 7, 2026 14:02
Copilot AI review requested due to automatic review settings May 7, 2026 14:02
@github-actions github-actions Bot added the size/XL May be very hard to review label May 7, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a makeMacro helper in src/testing-utils.ts to wrap AVA test.macro in a way that preserves stronger argument typing at call sites, and then migrates several existing test macros to use the new wrapper-style invocation.

Changes:

  • Add makeMacro helper that creates a typed wrapper around an AVA macro and exposes convenience helpers like .serial() / .test().
  • Refactor multiple test suites to declare macros via makeMacro and invoke them via the wrapper APIs (instead of passing macros into test() / test.serial()).
  • Update the workspace VS Code snippet to generate makeMacro-based macros.
Show a summary per file
File Description
src/testing-utils.ts Adds makeMacro helper and adjusts setupTests parameter naming.
src/upload-sarif.test.ts Migrates a macro + serial tests to makeMacro wrapper usage.
src/status-report.test.ts Migrates a macro + serial tests to makeMacro wrapper usage.
src/start-proxy.test.ts Migrates several macros/tests to wrapper-style invocation (.serial() / direct call).
src/setup-codeql.test.ts Migrates a macro + serial tests to makeMacro wrapper usage.
src/overlay/caching.test.ts Migrates a macro + serial tests to makeMacro wrapper usage.
src/init.test.ts Migrates a macro + tests to wrapper-style invocation (direct call).
src/init-action-post-helper.test.ts Migrates a macro + serial tests to makeMacro wrapper usage.
src/diff-informed-analysis-utils.test.ts Migrates a macro + serial tests to makeMacro wrapper usage.
src/config/db-config.test.ts Migrates multiple macros/tests and updates internal macro composition to use .fn.
src/config-utils.test.ts Migrates a macro + many serial tests to makeMacro wrapper usage.
src/codeql.test.ts Migrates a macro + many serial tests to makeMacro wrapper usage.
.vscode/tests.code-snippets Updates the “Test Macro” snippet to use makeMacro.

Copilot's findings

  • Files reviewed: 13/13 changed files
  • Comments generated: 1

Comment thread src/testing-utils.ts
Copy link
Copy Markdown
Contributor

@henrymercer henrymercer left a comment

Choose a reason for hiding this comment

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

Very nice!

@mbg mbg added this pull request to the merge queue May 7, 2026
Merged via the queue into main with commit 803d9e8 May 7, 2026
229 checks passed
@mbg mbg deleted the mbg/test/macro-wrapper branch May 7, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL May be very hard to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.