Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 16, 2025

  • Replace import statement from @fast-check/expect-type to vitest
  • Migrate assert section type tests
  • Migrate property and asyncProperty type tests
  • Migrate base arbitrary (chain, filter, map) type tests
  • Migrate constant and constantFrom type tests
  • Migrate uniqueArray type tests
  • Complete record arbitrary type tests migration
  • Migrate dictionary, map, tuple type tests
  • Migrate oneof, option type tests
  • Migrate letrec (tie) type tests
  • Migrate clone, func, falsy type tests
  • Complete entityGraph type tests migration
  • Fix remaining expectType calls in letrec section
  • Test the migration by running typecheck - PASSED
  • Build the package to ensure no breakage - PASSED
  • Remove @fast-check/expect-type dependency from package.json
  • Verify build and typecheck still pass
  • Address review feedback:
    • Fixed spelling errors (instanciates → instantiates, arbitary → arbitrary, t least → at least)
    • Fixed incorrect API migration (func: toMatchTypeOf → toEqualTypeOf)
    • Added missing descriptive comment for entityGraph
    • Updated pnpm-lock.yaml
  • Resync with main branch
  • Move inline comments inside expectTypeOf calls (right before the expect, not as separate line before)
  • Fix typecheck errors:
    • Migrated missed expectType call on line 495 (entityGraph inverse relationships)
    • Fixed func test on line 407 (changed toEqualTypeOf to toMatchTypeOf for compatibility)

Summary

Successfully migrated all type tests in packages/fast-check/test-types/main.ts from @fast-check/expect-type to vitest's built-in expectTypeOf. The migration involved:

  • Replacing expectType<T>()(value, 'description') with expectTypeOf(value).toEqualTypeOf<T>()
  • Replacing expectTypeAssignable<T>()(value, 'description') with expectTypeOf(value).toMatchTypeOf<T>()
  • Moving inline descriptions to comments above the assertions
  • Moving inline code comments inside expectTypeOf calls where appropriate
  • Removing the dependency on @fast-check/expect-type from package.json
  • Updating the lock file
  • Resyncing with main branch
  • Fixing all typecheck errors

All type checks pass and the package builds successfully.

Original prompt

move away from @fast-check/expect-type, switch to vitest's one. do it incrementally by doing part by part, commit by commit. start by moving the tests in packages/fast-check/test-types


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@changeset-bot
Copy link

changeset-bot bot commented Dec 16, 2025

⚠️ No Changeset found

Latest commit: e3bf88f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copilot AI changed the title [WIP] Migrate tests from @fast-check/expect-type to Vitest ✨ Migrate test-types from @fast-check/expect-type to vitest's expectTypeOf Dec 16, 2025
Copilot AI requested a review from dubzzz December 16, 2025 22:21
@dubzzz dubzzz marked this pull request as ready for review December 16, 2025 22:34
Copilot AI review requested due to automatic review settings December 16, 2025 22:34
Copy link
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 migrates type tests from the custom @fast-check/expect-type package to vitest's built-in expectTypeOf API. The migration updates 524 lines of type tests to use the standard vitest type assertion methods, eliminating the need for a custom testing package and aligning with modern TypeScript testing practices.

Key changes:

  • Replaced custom type assertion API with vitest's expectTypeOf
  • Converted inline description strings to comments above assertions
  • Removed @fast-check/expect-type from devDependencies

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 34 comments.

File Description
packages/fast-check/test-types/main.ts Migrated all type assertions from expectType/expectTypeAssignable to expectTypeOf with toEqualTypeOf/toMatchTypeOf methods, and converted description strings to comments
packages/fast-check/package.json Removed @fast-check/expect-type from devDependencies as it's no longer needed

).toEqualTypeOf<{}>();
// No recursion "letrec"
expectTypeOf(
fc.letrec((_tie) => ({
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

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

'_tie' is defined but never used.

Copilot uses AI. Check for mistakes.
).toEqualTypeOf<{ a: fc.Arbitrary<number>; b: fc.Arbitrary<unknown> }>();
// Accept additional keys within "letrec" but do not expose them outside
expectTypeOf(
fc.letrec<{ a: number }>((_tie) => ({
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

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

'_tie' is defined but never used.

Suggested change
fc.letrec<{ a: number }>((_tie) => ({
fc.letrec<{ a: number }>(() => ({

Copilot uses AI. Check for mistakes.
expectType<void>()(
// "configureGlobal" with custom reporter
expectTypeOf(
fc.configureGlobal({ reporter: (_out: fc.RunDetails<unknown>) => {} }),
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

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

'_out' is defined but never used.

Suggested change
fc.configureGlobal({ reporter: (_out: fc.RunDetails<unknown>) => {} }),
fc.configureGlobal({ reporter: () => {} }),

Copilot uses AI. Check for mistakes.
@dubzzz
Copy link
Owner

dubzzz commented Dec 17, 2025

@copilot update lock file

@dubzzz dubzzz changed the title ✨ Migrate test-types from @fast-check/expect-type to vitest's expectTypeOf ✅ Migrate test-types to vitest Dec 17, 2025
Copy link
Contributor Author

Copilot AI commented Dec 17, 2025

@copilot update lock file

Updated in f038d98 - pnpm-lock.yaml has been updated to reflect the removal of @fast-check/expect-type dependency.

@dubzzz
Copy link
Owner

dubzzz commented Dec 20, 2025

@copilot resync the main branch. Move comments on expect-type on the line right before the expect being considered (never after)

Copilot AI and others added 6 commits December 20, 2025 07:58
**Description**

Improved clarity, completeness, and usability of JSDoc documentation for
`entityGraph` and all related types. The previous documentation was
minimal and lacked concrete examples.

**Changes:**

- **`entityGraph` function**: Added output structure explanation, two
comprehensive examples (directed graph, employee/team relationships),
and relationship arity summary
- **`EntityGraphContraints`**: Clarified initial pool concept,
deduplication behavior, and prototype handling with examples
- **Type definitions** (`Arbitraries`, `ArbitraryStructure`,
`EntityRelations`, `Relationship`, `EntityGraphValue`): Added detailed
explanations and practical examples showing multi-entity structures
- **`Arity` and `Strategy`**: Expanded terse descriptions into clear
explanations of cardinality options and targeting restrictions

All improvements maintain backward compatibility.

**Checklist** — _Don't delete this checklist and make sure you do the
following before opening the PR_

- [x] The name of my PR follows [gitmoji](https://gitmoji.dev/)
specification
- [x] My PR references one of several related issues (if any)
- [x] New features or breaking changes must come with an associated
Issue or Discussion
- [x] My PR does not add any new dependency without an associated Issue
or Discussion
- [ ] My PR includes bumps details, please run `pnpm run bump` and flag
the impacts properly
- [x] My PR adds relevant tests and they would have failed without my PR
(when applicable)

**Advanced**

- [x] Category: 📝 Add or update documentation
- [x] Impacts: None - documentation only changes

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> please rework and rephrase the jsdoc for entityGraph and anything
linked to it (ie entityGraphCondtrzint and similar ones)


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
Co-authored-by: Nicolas DUBIEN <[email protected]>
The entityGraph documentation was too terse and didn't provide clear
explanations of key concepts like arity, strategy, and relationship
types. This updates the MD documentation to align with the improved
JSDoc from PR #6367.

**Key changes:**

- **Enhanced descriptions**: Clarified that cycles/shared references are
supported by default but controllable via strategy options. Added
explicit output structure description.

- **Parameter clarifications**:
- `arity`: Detailed cardinality explanations ('0-1' = optional, '1' =
required, 'many' = array with no duplicate references by object
identity)
- `strategy`: Clear descriptions of 'any' (no restrictions), 'exclusive'
(prevents sharing), 'successor' (prevents cycles/self-references)
- `initialPoolConstraints`: Explicitly references
`minLength`/`maxLength` properties like `fc.array`, notes additional
entities may be created for relationships
- `unicityConstraints`: Clarifies deduplication uses `Object.is` on
selector function results

- **Restructured examples**: Replaced terse "TLDR" comments with
structured format:
  ```js
// Note: Generate employees with optional manager relationships,
preventing cycles
  // - Entity type: employee with name field
// - Relationship: manager with arity '0-1' (optional) and strategy
'successor' (prevents cycles)
// - Produces: { employee: [{ name: "Alice", manager: <employee#1> },
...] }
  // 
  // Characteristics of this configuration:
  // - Enforces unique names (unicityConstraints)
// - Prevents cycles (e.g., A manages B who manages A) due to strategy:
'successor'
  ```

Maintains consistency with documentation patterns used for other
arbitraries (record, option, etc.).

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> based on changed being currently purposes by
#6367, please update the
documentation (the MD file) describing entityGraph to be more explicit.
try to preserve the shape of documentation that we used for all other
arbitraries


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
Co-authored-by: Nicolas DUBIEN <[email protected]>
Reactivates two skipped tests for `.only.prop` functionality that were
failing due to vitest's `.only` modifier requiring the `--allowOnly`
flag.

## Changes

- Modified `runSpec()` to accept optional `allowOnly` parameter that
passes `--allowOnly` flag to vitest
- Reactivated `test.only.prop` and `it.only.prop` tests by removing
`.skip` modifier
- Fixed `test.concurrent.fails.only.prop` which was accidentally passing
without the flag

```typescript
// Before: test was skipped
it.skip(`should support ${runnerName}.only.prop`, async () => {
  const out = await runSpec(specDirectory);
  expectPass(out);
});

// After: test runs with allowOnly flag
it.concurrent(`should support ${runnerName}.only.prop`, async () => {
  const out = await runSpec(specDirectory, { allowOnly: true });
  expectPass(out);
});
```

All four `.only.prop` test variants now pass.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> reactivate skipped tests, there is at least one in vitest part


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
The worker e2e tests used a misnamed `jestTimeout` variable despite
running on Vitest. The 10-second timeout was also insufficient for some
test scenarios.

## Changes

- **Renamed**: `jestTimeout` → `testTimeout` across all 13 e2e test
files
- **Increased timeout**: 10000ms → 30000ms

```typescript
// Before
describe('@fast-check/worker', () => {
  const jestTimeout = 10000;
  // ...
  it('test name', async () => { /* ... */ }, jestTimeout);
});

// After
describe('@fast-check/worker', () => {
  const testTimeout = 30000;
  // ...
  it('test name', async () => { /* ... */ }, testTimeout);
});
```

Affected files in `packages/worker/test/e2e/`:
- asyncThrow.spec.ts
- blockEventLoop.spec.ts
- concurrentAssert.spec.ts
- failing.spec.ts
- noWorker.spec.ts
- nonSerializableButSameData.spec.ts
- nonSerializableData.spec.ts
- passing.spec.ts
- predicateIsolation.spec.ts
- propertyIsolation.spec.ts
- supportPre.spec.ts
- syncThrow.spec.ts
- unregistered.spec.ts

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> increase jestTimeout value in worker e2e tests. rename the variable
too, it's not anymore jest


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

✨ Let Copilot coding agent [set things up for
you](https://github.com/dubzzz/fast-check/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
Co-authored-by: Nicolas DUBIEN <[email protected]>
E2e tests were timing out with "Property timeout: exceeded limit of 1000
milliseconds" errors in CI, particularly in
`nonSerializableButSameData.spec.ts`.

## Changes

- Increased `assertTimeout` from 1000ms to 5000ms across all 13 e2e test
files in `packages/worker/test/e2e/`
- Updated expected error message in `blockEventLoop.spec.ts` to match
new 5000ms timeout value

The 5-second timeout provides adequate execution time for property-based
tests under constrained CI environments.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> bump the timeouts in e2e of worker to 5s, to drop these errors
> 
> 
> FAIL @fast-check/worker
test/e2e/nonSerializableButSameData.spec.ts�[2m > @fast-check/worker�[2m
> should produce the same data in worker and main thread
> AssertionError: expected 'Error: Property failed after 1 tests\…' to
match />>>nonSerializableButSameDataProperty…/
> 
> - Expected: 
> />>>nonSerializableButSameDataProperty=(.*)<<</
> 
> + Received: 
> "Error: Property failed after 1 tests
> { seed: -1454768394, path: \"0\", endOnFailure: true }
> Counterexample: [Symbol.for(\"-962\")]
> Shrunk 0 time(s)
> Got error: Property timeout: exceeded limit of 1000 milliseconds
> at Timeout.<anonymous>
(D:/a/fast-check/fast-check/packages/fast-check/lib/check/property/TimeoutProperty.js:6:30)
>     at listOnTimeout (node:internal/timers:605:17)
>     at processTimers (node:internal/timers:541:7)
> 
> Hint: Enable verbose mode in order to have the list of all failing
values encountered during the run"
> 
>  �[2m❯ test/e2e/nonSerializableButSameData.spec.ts:�[2m36:27
> 34| const workerValueRegex = />>>nonSerializableButSameDataPrope…
>      35|           expect(message).toMatch(mainValueRegex);
>      36|           expect(message).toMatch(workerValueRegex);
>        |                           ^
>      37|           const mainValue = mainValueRegex.exec(message)![1];
> 38| const workerValue = workerValueRegex.exec(message)![1];


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
**Description**

<!-- Please provide a short description and potentially linked issues
justifying the need for this PR -->

<!-- * Your PR is fixing a bug or regression? Check for existing issues
related to this bug and link them -->
<!-- * Your PR is adding a new feature? Make sure there is a related
issue or discussion attached to it -->

<!-- You can provide any additional context to help into understanding
what's this PR is attempting to solve: reproduction of a bug, code
snippets... -->

**Checklist** — _Don't delete this checklist and make sure you do the
following before opening the PR_

- [ ] The name of my PR follows [gitmoji](https://gitmoji.dev/)
specification
- [ ] My PR references one of several related issues (if any)
- [ ] New features or breaking changes must come with an associated
Issue or Discussion
- [ ] My PR does not add any new dependency without an associated Issue
or Discussion
- [ ] My PR includes bumps details, please run `pnpm run bump` and flag
the impacts properly
- [ ] My PR adds relevant tests and they would have failed without my PR
(when applicable)

<!-- More about contributing at
https://github.com/dubzzz/fast-check/blob/main/CONTRIBUTING.md -->

**Advanced**

<!-- How to fill the advanced section is detailed below! -->

- [ ] Category: ...
- [ ] Impacts: ...

<!-- [Category] Please use one of the categories below, it will help us
into better understanding the urgency of the PR -->
<!-- * ✨ Introduce new features -->
<!-- * 📝 Add or update documentation -->
<!-- * ✅ Add or update tests -->
<!-- * 🐛 Fix a bug -->
<!-- * 🏷️ Add or update types -->
<!-- * ⚡️ Improve performance -->
<!-- * _Other(s):_ ... -->

<!-- [Impacts] Please provide a comma separated list of the potential
impacts that might be introduced by this change -->
<!-- * Generated values: Can your change impact any of the existing
generators in terms of generated values, if so which ones? when? -->
<!-- * Shrink values: Can your change impact any of the existing
generators in terms of shrink values, if so which ones? when? -->
<!-- * Performance: Can it require some typings changes on user side?
Please give more details -->
<!-- * Typings: Is there a potential performance impact? In which cases?
-->
Copilot AI and others added 14 commits December 20, 2025 07:58
## Plan: Replace ts-ignore with ts-expect-error and add details

- [x] Replace `@ts-ignore` with `@ts-expect-error` in
packages/jest/src/jest-fast-check-worker.ts and add explanation comment
- [x] Replace `@ts-ignore` with `@ts-expect-error` in
packages/poisoning/test/main.spec.ts (4 occurrences) and add explanation
comments
- [x] Replace `@ts-ignore` with `@ts-expect-error` in
packages/poisoning/test/internals/TrackDiffsOnGlobal.spec.ts and add
explanation comment
- [x] Replace `@ts-ignore` with `@ts-expect-error` in
packages/worker/test/e2e/*.spec.ts files (12 occurrences) and add
explanation comments
- [x] Replace `@ts-ignore` with `@ts-expect-error` in
website/docs/tutorials/detect-race-conditions/Playgrounds.tsx and add
explanation comment
- [x] Run lint check to ensure no issues with changes
- [x] Remove unused eslint-disable directives automatically cleaned up
by linter
- [x] Keep `@ts-ignore` for jest-fast-check-worker.ts (conditional error
in ESM only) with detailed explanation
- [x] Build all packages successfully
- [x] Run tests for poisoning and worker packages - all pass
- [x] Complete code review - no issues found
- [x] Complete security scan - no vulnerabilities found
- [x] Resolve merge conflicts with main branch
(concurrentAssert.spec.ts)

## Merge Conflict Resolution

Merged latest changes from main branch which added logging functionality
to `concurrentAssert.spec.ts`. Resolved conflict by:
- Keeping the `@ts-expect-error` approach from this PR
- Including the new `concurrentLogFile` import from main
- Preserving all new logging functionality

All tests pass after merge.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> replace ts-ignore by ts-expect-error and add more details on why we
ignore if missing


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
Co-authored-by: Nicolas DUBIEN <[email protected]>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@testing-library/react](https://redirect.github.com/testing-library/react-testing-library)
| [`^16.3.0` ->
`^16.3.1`](https://renovatebot.com/diffs/npm/@testing-library%2freact/16.3.0/16.3.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/16.3.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/16.3.0/16.3.1?slim=true)
|

---

### Release Notes

<details>
<summary>testing-library/react-testing-library
(@&#8203;testing-library/react)</summary>

###
[`v16.3.1`](https://redirect.github.com/testing-library/react-testing-library/compare/v16.3.0...a2d37ffa09d85b10485f29b79cf7cb4f8ec943db)

[Compare
Source](https://redirect.github.com/testing-library/react-testing-library/compare/v16.3.0...v16.3.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.25.0` ->
`10.26.0`](https://renovatebot.com/diffs/npm/pnpm/10.25.0/10.26.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.26.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.25.0/10.26.0?slim=true)
|

---

### Release Notes

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.26.0`](https://redirect.github.com/pnpm/pnpm/compare/v10.25.0...v10.26.0)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.25.0...v10.26.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@typescript-eslint/utils](https://typescript-eslint.io/packages/utils)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils))
| [`^8.49.0` ->
`^8.50.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2futils/8.49.0/8.50.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2futils/8.50.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2futils/8.49.0/8.50.0?slim=true)
|
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`^8.49.0` ->
`^8.50.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.49.0/8.50.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.50.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.49.0/8.50.0?slim=true)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/utils)</summary>

###
[`v8.50.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/utils/CHANGELOG.md#8500-2025-12-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.49.0...v8.50.0)

This was a version bump only for utils to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(typescript-eslint)</summary>

###
[`v8.50.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8500-2025-12-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.49.0...v8.50.0)

This was a version bump only for typescript-eslint to align it with
other projects, there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`^7.2.7` ->
`^7.3.0`](https://renovatebot.com/diffs/npm/vite/7.2.7/7.3.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.3.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/7.2.7/7.3.0?slim=true)
|

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v7.3.0`](https://redirect.github.com/vitejs/vite/releases/tag/v7.3.0)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.2.7...v7.3.0)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v7.3.0/packages/vite/CHANGELOG.md)
for details.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.31.8` -> `v4.31.9` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v4.31.9`](https://redirect.github.com/github/codeql-action/compare/v4.31.8...v4.31.9)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.31.8...v4.31.9)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`^24.10.3` ->
`^24.10.4`](https://renovatebot.com/diffs/npm/@types%2fnode/24.10.3/24.10.4)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/24.10.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/24.10.3/24.10.4?slim=true)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Security audit flagged the `preview` job's `pkg-pr-new publish` commands
for not using trusted publishing authentication. However, these are not
actual npm publish commands but `pnpm dlx pkg-pr-new` commands for
creating preview deployments.

**Changes**
- Created `.github/zizmor.yml` configuration file to ignore the
`use-trusted-publishing` rule for the two `pkg-pr-new` commands at lines
210 and 213 in `build-status.yml`
- Added explanatory comments in the config file documenting why these
commands are ignored (they are preview deployment commands, not npm
publish operations)
- Updated `.github/workflows/zizmor.yml` to trigger on changes to
`.github/zizmor.yml`, ensuring the security audit runs when the config
is modified
- Explicitly referenced the config file in the workflow command with
`--config .github/zizmor.yml` for clarity
- This approach is preferred over adding OIDC permissions since these
commands don't actually publish to npm

**Verification**
- Tested with `zizmor --config .github/zizmor.yml .` - shows "2 ignored"
and "No findings to report"

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> provide fixed for the errors: info[use-trusted-publishing]: prefer
trusted publishing for authentication
>    --> ./.github/workflows/build-status.yml:210:14
>     |
> 210 | run: pnpm dlx pkg-pr-new publish --compact './packages/*'
--template './examples' --comment=off
> | ---
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this command
>     |         |
>     |         this step
>     |
>     = note: audit confidence → High
> 
> info[use-trusted-publishing]: prefer trusted publishing for
authentication
>    --> ./.github/workflows/build-status.yml:213:14
>     |
> 213 | run: pnpm dlx pkg-pr-new publish --compact './packages/*'
--template './examples'
> | ---
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this command
>     |         |
>     |         this step
>     |
>     = note: audit confidence → High


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: dubzzz <[email protected]>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/attest-build-provenance](https://redirect.github.com/actions/attest-build-provenance)
| action | minor | `v3.0.0` -> `v3.1.0` |

---

### Release Notes

<details>
<summary>actions/attest-build-provenance
(actions/attest-build-provenance)</summary>

###
[`v3.1.0`](https://redirect.github.com/actions/attest-build-provenance/compare/v3.0.0...v3.1.0)

[Compare
Source](https://redirect.github.com/actions/attest-build-provenance/compare/v3.0.0...v3.1.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.26.0` ->
`10.26.1`](https://renovatebot.com/diffs/npm/pnpm/10.26.0/10.26.1) |
![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.26.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.26.0/10.26.1?slim=true)
|

---

### Release Notes

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.26.1`](https://redirect.github.com/pnpm/pnpm/compare/v10.26.0...v10.26.1)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.26.0...v10.26.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dubzzz/fast-check).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: dubzzz <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <[email protected]>
Copy link
Contributor Author

Copilot AI commented Dec 20, 2025

@copilot resync the main branch. Move comments on expect-type on the line right before the expect being considered (never after)

Completed in f382608:

  • Rebased on main branch to resync
  • Moved inline comments (that were originally inside expectType calls) to be inside the expectTypeOf calls rather than as separate lines before them

Examples:

  • Line 80-82: Moved "without the as, TypeScript refused..." comment inside the expectTypeOf call
  • Line 127-128: Moved "Ideally we should not need to explicitely type..." comment inside the expectTypeOf call

dubzzz and others added 2 commits December 20, 2025 08:59
  Applied by GitHub Action workflow: PR Format
  Run ID: 20391463347
  Target PR: 6381
@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 20, 2025

@fast-check/ava

npm i https://pkg.pr.new/@fast-check/ava@6381

@fast-check/expect-type

npm i https://pkg.pr.new/@fast-check/expect-type@6381

fast-check

npm i https://pkg.pr.new/fast-check@6381

@fast-check/jest

npm i https://pkg.pr.new/@fast-check/jest@6381

@fast-check/packaged

npm i https://pkg.pr.new/@fast-check/packaged@6381

@fast-check/poisoning

npm i https://pkg.pr.new/@fast-check/poisoning@6381

@fast-check/vitest

npm i https://pkg.pr.new/@fast-check/vitest@6381

@fast-check/worker

npm i https://pkg.pr.new/@fast-check/worker@6381

commit: 1b20f0d

@dubzzz
Copy link
Owner

dubzzz commented Dec 20, 2025

@copilot please fix

packages/fast-check typecheck: test-types/main.ts(407,33): error TS2554: Expected 1 arguments, but got 0.
packages/fast-check typecheck: test-types/main.ts(495,1): error TS2552: Cannot find name 'expectType'. Did you mean 'expectTypeOf'?

Copy link
Contributor Author

Copilot AI commented Dec 20, 2025

@copilot please fix

packages/fast-check typecheck: test-types/main.ts(407,33): error TS2554: Expected 1 arguments, but got 0....

Fixed in e3bf88f:

  • Line 495: Migrated missed expectType call to expectTypeOf (entityGraph inverse relationships test)
  • Line 407: Changed toEqualTypeOf to toMatchTypeOf for func test to fix type compatibility issue

Both typecheck errors are now resolved.

Copilot AI requested a review from dubzzz December 20, 2025 08:26
@github-actions
Copy link
Contributor

👋 A preview of the new documentation is available at: http://69465e30b02a0033ac70b983--dubzzz-fast-check.netlify.app

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