mirror of
https://github.com/simstudioai/sim.git
synced 2026-09-19 09:30:49 +08:00
* fix(deps): upgrade vitest to ^4.1.0 to patch critical Vitest UI advisory (GHSA-5xrq-8626-4rwp) - Bump vitest and @vitest/coverage-v8 to ^4.1.0 across all workspaces (only patched release for the critical 'Vitest UI server arbitrary file read/execute' advisory; no 3.x backport exists) - Widen @sim/testing peer range to ^3.0.0 || ^4.0.0 - Migrate constructor mocks to class expressions: vitest 4 uses Reflect.construct for mocks invoked with new, and arrow/function implementations are not constructable (function expressions also get reverted to arrows by biome's useArrowFunction) - Remove deprecated test.poolOptions from apps/sim/vitest.config.ts (options are now top-level in vitest 4) * fix(deps): exclude vulnerable vitest 4.0.x from @sim/testing peer range Tighten the v4 arm of the peer range to >=4.1.0 <5.0.0 so the peer requirement cannot be satisfied by the unpatched 4.0.x builds that GHSA-5xrq-8626-4rwp affects. * fix(testing): make vitest 4 constructor mocks type-check cleanly - logging-session & mcp-oauth mocks: a class passed to mockImplementation has a construct signature that isn't assignable to its (...args) => any parameter, failing tsc. Use named function declarations instead (constructable via Reflect.construct, assignable to mockImplementation, and not rewritten to arrows by biome's useArrowFunction). - database.mock.ts: vitest 4's generic vi.fn typings no longer break the self-referential cycle on the transaction callback's tx param; loosen tx and annotate the callback's return type to resolve the implicit-any errors. * test(isolated-vm): de-flake queue-capacity scheduler tests The 'queue is full' and 'per-owner queued limit' tests relied on 'await sleep(1)' to assume the first request had reached the queue before submitting the overflow request. The first request only enqueues after an async spawn-failure chain (acquireWorker -> spawn exit -> resolve null -> enqueue), which isn't guaranteed within 1ms under CI load — the overflow request then found an empty queue and hit the 200ms queue-wait timeout instead of the capacity rejection. Replace the wall-clock barrier with a deterministic, event-driven one: hold the single global concurrency slot (IVM_MAX_CONCURRENT=1) with an active worker and await an explicit 'dispatched' signal (fired when the worker receives its execute message, after the scheduler counts it active). The follow-up requests then deterministically hit the synchronous enqueue path. Also drops the queue-wait timeout from 200ms to 50ms, so the tests run faster.
63 lines
1.4 KiB
JSON
63 lines
1.4 KiB
JSON
{
|
|
"name": "@sim/testing",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"sideEffects": [
|
|
"./src/setup/*"
|
|
],
|
|
"type": "module",
|
|
"license": "Apache-2.0",
|
|
"engines": {
|
|
"bun": ">=1.2.13",
|
|
"node": ">=20.0.0"
|
|
},
|
|
"exports": {
|
|
".": {
|
|
"types": "./src/index.ts",
|
|
"default": "./src/index.ts"
|
|
},
|
|
"./factories": {
|
|
"types": "./src/factories/index.ts",
|
|
"default": "./src/factories/index.ts"
|
|
},
|
|
"./builders": {
|
|
"types": "./src/builders/index.ts",
|
|
"default": "./src/builders/index.ts"
|
|
},
|
|
"./mocks": {
|
|
"types": "./src/mocks/index.ts",
|
|
"default": "./src/mocks/index.ts"
|
|
},
|
|
"./mocks/executor": {
|
|
"types": "./src/mocks/executor.mock.ts",
|
|
"default": "./src/mocks/executor.mock.ts"
|
|
},
|
|
"./assertions": {
|
|
"types": "./src/assertions/index.ts",
|
|
"default": "./src/assertions/index.ts"
|
|
},
|
|
"./setup": {
|
|
"types": "./src/setup/vitest.setup.ts",
|
|
"default": "./src/setup/vitest.setup.ts"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"type-check": "tsc --noEmit",
|
|
"lint": "biome check --write --unsafe .",
|
|
"lint:check": "biome check .",
|
|
"format": "biome format --write .",
|
|
"format:check": "biome format ."
|
|
},
|
|
"peerDependencies": {
|
|
"vitest": "^3.0.0 || >=4.1.0 <5.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@sim/tsconfig": "workspace:*",
|
|
"typescript": "^5.7.3",
|
|
"vitest": "^4.1.0"
|
|
},
|
|
"dependencies": {
|
|
"@sim/utils": "workspace:*"
|
|
}
|
|
}
|