From cea4a30cff9d6a91cf2f98599ecbb5585ef887f9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 2 Apr 2026 14:04:12 +0000
Subject: [PATCH 1/5] Initial plan
From 8cdb20ae91d72a3b94c510bf8c29ead6e7fa7edf Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 2 Apr 2026 14:09:40 +0000
Subject: [PATCH 2/5] chore: rename package from poku-react-testing to
@pokujs/react
Agent-Logs-Url: https://github.com/Lojhan/poku-react-testing/sessions/9683d7e3-c7ff-4ebc-9926-57cd02c81556
Co-authored-by: Lojhan <47763156+Lojhan@users.noreply.github.com>
---
.github/codeql/codeql-config.yml | 2 +-
.github/workflows/cd_publish.yml | 2 +-
CHANGELOG.md | 14 +-
README.md | 16 +-
benchmark/REPORT.md | 6 +-
benchmark/package-lock.json | 621 ++++++++++++++++---------------
benchmark/package.json | 2 +-
benchmark/poku.config.js | 2 +-
package-lock.json | 4 +-
package.json | 8 +-
src/dom-setup-jsdom.ts | 2 +-
src/plugin-command.ts | 2 +-
src/plugin-metrics.ts | 2 +-
src/plugin-setup.ts | 2 +-
src/react-testing.ts | 2 +-
15 files changed, 361 insertions(+), 326 deletions(-)
diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml
index 6e9ccc8..ff1546d 100644
--- a/.github/codeql/codeql-config.yml
+++ b/.github/codeql/codeql-config.yml
@@ -1,4 +1,4 @@
-name: poku-react-testing-codeql
+name: pokujs-react-codeql
queries:
- uses: security-extended
- uses: security-and-quality
diff --git a/.github/workflows/cd_publish.yml b/.github/workflows/cd_publish.yml
index 2682ba9..305126f 100644
--- a/.github/workflows/cd_publish.yml
+++ b/.github/workflows/cd_publish.yml
@@ -25,7 +25,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: node
- package-name: poku-react-testing
+ package-name: '@pokujs/react'
- name: โ Actions - Checkout
uses: actions/checkout@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 00e2770..599bdd4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,26 +1,26 @@
# Changelog
-## [1.2.0](https://github.com/Lojhan/poku-react-testing/compare/v1.1.0...v1.2.0) (2026-04-01)
+## [1.2.0](https://github.com/pokujs/react/compare/v1.1.0...v1.2.0) (2026-04-01)
### Features
-* refactor plugin internals and stabilize isolation:none ([#8](https://github.com/Lojhan/poku-react-testing/issues/8)) ([cd2d93d](https://github.com/Lojhan/poku-react-testing/commit/cd2d93d41f913c0a581663a8f9e261c2c6574f27))
+* refactor plugin internals and stabilize isolation:none ([#8](https://github.com/pokujs/react/issues/8)) ([cd2d93d](https://github.com/pokujs/react/commit/cd2d93d41f913c0a581663a8f9e261c2c6574f27))
-## [1.1.0](https://github.com/Lojhan/poku-react-testing/compare/v1.0.1...v1.1.0) (2026-03-31)
+## [1.1.0](https://github.com/pokujs/react/compare/v1.0.1...v1.1.0) (2026-03-31)
### Features
-- optimize react testing runtime and add prettier ([#6](https://github.com/Lojhan/poku-react-testing/issues/6)) ([424194b](https://github.com/Lojhan/poku-react-testing/commit/424194b2c5bdc5f8c3d3c7a41bc91b50d51dd38c))
+- optimize react testing runtime and add prettier ([#6](https://github.com/pokujs/react/issues/6)) ([424194b](https://github.com/pokujs/react/commit/424194b2c5bdc5f8c3d3c7a41bc91b50d51dd38c))
-## [1.0.1](https://github.com/Lojhan/poku-react-testing/compare/v1.0.0...v1.0.1) (2026-03-31)
+## [1.0.1](https://github.com/pokujs/react/compare/v1.0.0...v1.0.1) (2026-03-31)
### Bug Fixes
-- add repository metadata required for npm provenance ([#4](https://github.com/Lojhan/poku-react-testing/issues/4)) ([f20b16a](https://github.com/Lojhan/poku-react-testing/commit/f20b16a9ab72bb957743c7739a926d0bfb851f68))
+- add repository metadata required for npm provenance ([#4](https://github.com/pokujs/react/issues/4)) ([f20b16a](https://github.com/pokujs/react/commit/f20b16a9ab72bb957743c7739a926d0bfb851f68))
## 1.0.0 (2026-03-31)
### Bug Fixes
-- clarify Deno compatibility guidance in README ([#2](https://github.com/Lojhan/poku-react-testing/issues/2)) ([ee28792](https://github.com/Lojhan/poku-react-testing/commit/ee28792965b9cc9dacc8bee2fc96a5f84088f2d1))
+- clarify Deno compatibility guidance in README ([#2](https://github.com/pokujs/react/issues/2)) ([ee28792](https://github.com/pokujs/react/commit/ee28792965b9cc9dacc8bee2fc96a5f84088f2d1))
diff --git a/README.md b/README.md
index 0f1bde7..0732aa4 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,19 @@

-# poku-react-testing
+# @pokujs/react
Enjoying **Poku**? [Give him a star to show your support](https://github.com/wellwelwel/poku) ๐
---
-๐ [**Documentation**](https://github.com/Lojhan/poku-react-testing#readme)
+๐ [**Documentation**](https://github.com/pokujs/react#readme)
---
-๐งช [**poku-react-testing**](https://github.com/Lojhan/poku-react-testing) is a **Poku** plugin for React component testing with DOM adapters.
+๐งช [**@pokujs/react**](https://github.com/pokujs/react) is a **Poku** plugin for React component testing with DOM adapters.
> [!TIP]
>
@@ -31,7 +31,7 @@ Enjoying **Poku**? [Give him a star to show your support](https://github.com/wel
```bash
# Node.js
-npm i -D poku-react-testing
+npm i -D @pokujs/react
```
@@ -39,7 +39,7 @@ npm i -D poku-react-testing
```bash
# Bun
-bun add -d poku-react-testing
+bun add -d @pokujs/react
```
@@ -47,7 +47,7 @@ bun add -d poku-react-testing
```bash
# Deno (optional)
-deno add npm:poku-react-testing
+deno add npm:@pokujs/react
```
@@ -83,7 +83,7 @@ npm i -D jsdom
```js
// poku.config.js
import { defineConfig } from 'poku';
-import { reactTestingPlugin } from 'poku-react-testing/plugin';
+import { reactTestingPlugin } from '@pokujs/react/plugin';
export default defineConfig({
plugins: [
@@ -99,7 +99,7 @@ export default defineConfig({
```tsx
// tests/my-component.test.tsx
import { afterEach, assert, test } from 'poku';
-import { cleanup, render, screen } from 'poku-react-testing';
+import { cleanup, render, screen } from '@pokujs/react';
afterEach(cleanup);
diff --git a/benchmark/REPORT.md b/benchmark/REPORT.md
index e38c66a..058ae62 100644
--- a/benchmark/REPORT.md
+++ b/benchmark/REPORT.md
@@ -29,8 +29,8 @@ Each scenario runs the **same 9 React tests** across 5 test files:
| Combination | DOM layer | Assertion style |
| --------------------------------- | ------------------------------ | -------------------- |
-| poku + poku-react-testing | happy-dom | `assert.strictEqual` |
-| poku + poku-react-testing | jsdom | `assert.strictEqual` |
+| poku + @pokujs/react | happy-dom | `assert.strictEqual` |
+| poku + @pokujs/react | jsdom | `assert.strictEqual` |
| jest 29 + @testing-library/react | jsdom (jest-environment-jsdom) | `expect().toBe()` |
| vitest 3 + @testing-library/react | jsdom | `expect().toBe()` |
| vitest 3 + @testing-library/react | happy-dom | `expect().toBe()` |
@@ -94,7 +94,7 @@ Each scenario runs the **same 9 React tests** across 5 test files:
### Interpretation
-**poku + poku-react-testing** avoids the multi-process or bundler startup that jest (babel transform
+**poku + @pokujs/react** avoids the multi-process or bundler startup that jest (babel transform
pipeline) and vitest (Vite + module graph) require. Its architecture โ isolated per-file Node.js
processes with minimal bootstrap โ means cold-start overhead is proportional to the number of test
files, not to the framework's own initialization.
diff --git a/benchmark/package-lock.json b/benchmark/package-lock.json
index 4182dc8..076f824 100644
--- a/benchmark/package-lock.json
+++ b/benchmark/package-lock.json
@@ -11,6 +11,7 @@
"@babel/core": "^7.29.0",
"@babel/preset-env": "^7.29.2",
"@babel/preset-react": "^7.28.5",
+ "@pokujs/react": "file:..",
"@testing-library/react": "^16.3.2",
"@vitejs/plugin-react": "^4.7.0",
"babel-jest": "^30.3.0",
@@ -19,15 +20,14 @@
"jest-environment-jsdom": "^30.3.0",
"jsdom": "26.1.0",
"poku": "4.2.0",
- "poku-react-testing": "file:..",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"vitest": "^3.2.4"
}
},
"..": {
- "name": "poku-react-testing",
- "version": "1.1.0",
+ "name": "@pokujs/react",
+ "version": "1.2.0",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1730,6 +1730,40 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@emnapi/core": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz",
+ "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz",
+ "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@esbuild/aix-ppc64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
@@ -2610,6 +2644,19 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
+ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.10.0"
+ }
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"dev": true,
@@ -2630,6 +2677,10 @@
"url": "https://opencollective.com/pkgr"
}
},
+ "node_modules/@pokujs/react": {
+ "resolved": "..",
+ "link": true
+ },
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.27",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
@@ -3055,6 +3106,17 @@
}
}
},
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@types/aria-query": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
@@ -3205,6 +3267,34 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/@unrs/resolver-binding-android-arm-eabi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
+ "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-android-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz",
+ "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
"node_modules/@unrs/resolver-binding-darwin-arm64": {
"version": "1.11.1",
"cpu": [
@@ -3217,6 +3307,233 @@
"darwin"
]
},
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz",
+ "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz",
+ "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz",
+ "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz",
+ "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz",
+ "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz",
+ "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz",
+ "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz",
+ "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz",
+ "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz",
+ "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz",
+ "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz",
+ "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz",
+ "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "^0.2.11"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz",
+ "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz",
+ "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz",
+ "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@vitejs/plugin-react": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
@@ -4101,18 +4418,6 @@
"node": ">=6"
}
},
- "node_modules/detect-libc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
- "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
- "dev": true,
- "license": "Apache-2.0",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/detect-newline": {
"version": "3.1.0",
"dev": true,
@@ -5666,280 +5971,6 @@
"node": ">=6"
}
},
- "node_modules/lightningcss": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
- "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "peer": true,
- "dependencies": {
- "detect-libc": "^2.0.3"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "lightningcss-android-arm64": "1.32.0",
- "lightningcss-darwin-arm64": "1.32.0",
- "lightningcss-darwin-x64": "1.32.0",
- "lightningcss-freebsd-x64": "1.32.0",
- "lightningcss-linux-arm-gnueabihf": "1.32.0",
- "lightningcss-linux-arm64-gnu": "1.32.0",
- "lightningcss-linux-arm64-musl": "1.32.0",
- "lightningcss-linux-x64-gnu": "1.32.0",
- "lightningcss-linux-x64-musl": "1.32.0",
- "lightningcss-win32-arm64-msvc": "1.32.0",
- "lightningcss-win32-x64-msvc": "1.32.0"
- }
- },
- "node_modules/lightningcss-android-arm64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
- "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
- "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
- "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
- "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
- "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
- "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
- "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
- "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
- "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
- "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.32.0",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
- "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
"node_modules/lines-and-columns": {
"version": "1.2.4",
"dev": true,
@@ -6372,10 +6403,6 @@
"url": "https://github.com/sponsors/wellwelwel"
}
},
- "node_modules/poku-react-testing": {
- "resolved": "..",
- "link": true
- },
"node_modules/postcss": {
"version": "8.5.8",
"dev": true,
@@ -7118,6 +7145,14 @@
"node": ">=18"
}
},
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD",
+ "optional": true
+ },
"node_modules/type-detect": {
"version": "4.0.8",
"dev": true,
diff --git a/benchmark/package.json b/benchmark/package.json
index 1b98bf6..7fe6243 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -21,7 +21,7 @@
"jest-environment-jsdom": "^30.3.0",
"jsdom": "26.1.0",
"poku": "4.2.0",
- "poku-react-testing": "file:..",
+ "@pokujs/react": "file:..",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"vitest": "^3.2.4"
diff --git a/benchmark/poku.config.js b/benchmark/poku.config.js
index a2d3d9e..afca985 100644
--- a/benchmark/poku.config.js
+++ b/benchmark/poku.config.js
@@ -1,5 +1,5 @@
import { defineConfig } from 'poku';
-import { reactTestingPlugin } from 'poku-react-testing/plugin';
+import { reactTestingPlugin } from '@pokujs/react/plugin';
const dom = process.env.POKU_REACT_TEST_DOM;
if (!dom) {
diff --git a/package-lock.json b/package-lock.json
index fad4ae4..f64a774 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,11 @@
{
- "name": "poku-react-testing",
+ "name": "@pokujs/react",
"version": "1.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "poku-react-testing",
+ "name": "@pokujs/react",
"version": "1.2.0",
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index d9470d0..b560bc8 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "poku-react-testing",
+ "name": "@pokujs/react",
"version": "1.2.0",
"private": false,
"description": "React testing helpers and Poku plugin for DOM-backed component tests.",
@@ -56,11 +56,11 @@
"author": "Lojhan",
"repository": {
"type": "git",
- "url": "https://github.com/Lojhan/poku-react-testing"
+ "url": "https://github.com/pokujs/react"
},
- "homepage": "https://github.com/Lojhan/poku-react-testing#readme",
+ "homepage": "https://github.com/pokujs/react#readme",
"bugs": {
- "url": "https://github.com/Lojhan/poku-react-testing/issues"
+ "url": "https://github.com/pokujs/react/issues"
},
"license": "MIT",
"publishConfig": {
diff --git a/src/dom-setup-jsdom.ts b/src/dom-setup-jsdom.ts
index e5e80a3..0bc62a1 100644
--- a/src/dom-setup-jsdom.ts
+++ b/src/dom-setup-jsdom.ts
@@ -23,7 +23,7 @@ const createJSDOMEnvironment = async () => {
mod = await import('jsdom');
} catch {
throw new Error(
- '[poku-react-testing] DOM adapter "jsdom" requires the "jsdom" package. Install it with "npm install --save-dev jsdom".'
+ '[@pokujs/react] DOM adapter "jsdom" requires the "jsdom" package. Install it with "npm install --save-dev jsdom".'
);
}
diff --git a/src/plugin-command.ts b/src/plugin-command.ts
index a5d8cda..c516049 100644
--- a/src/plugin-command.ts
+++ b/src/plugin-command.ts
@@ -60,7 +60,7 @@ export const resolveDomSetupPath = (adapter: ReactDomAdapter | undefined) => {
if (!existsSync(customPath)) {
throw new Error(
- `[poku-react-testing] Custom DOM setup module not found: "${customPath}"\n` +
+ `[@pokujs/react] Custom DOM setup module not found: "${customPath}"\n` +
`Check the "dom.setupModule" option in your poku.config.js.`
);
}
diff --git a/src/plugin-metrics.ts b/src/plugin-metrics.ts
index 1e58bd8..4fbf3e3 100644
--- a/src/plugin-metrics.ts
+++ b/src/plugin-metrics.ts
@@ -156,6 +156,6 @@ export const printMetricsSummary = (summary: ReactMetricsSummary) => {
` - ${metric.componentName} in ${metric.file}: ${metric.durationMs.toFixed(2)}ms`
);
- console.log('\n[poku-react-testing] Slowest component renders');
+ console.log('\n[@pokujs/react] Slowest component renders');
for (const line of lines) console.log(line);
};
diff --git a/src/plugin-setup.ts b/src/plugin-setup.ts
index ec800fc..ae6b625 100644
--- a/src/plugin-setup.ts
+++ b/src/plugin-setup.ts
@@ -30,7 +30,7 @@ const registerNodeTsxLoader = async () => {
return mod.register();
} catch (error) {
throw new Error(
- '[poku-react-testing] isolation "none" in Node.js requires a working "tsx" installation to load .tsx/.jsx test files.',
+ '[@pokujs/react] isolation "none" in Node.js requires a working "tsx" installation to load .tsx/.jsx test files.',
{ cause: error }
);
}
diff --git a/src/react-testing.ts b/src/react-testing.ts
index 8188c2b..d201c28 100644
--- a/src/react-testing.ts
+++ b/src/react-testing.ts
@@ -72,7 +72,7 @@ type MetricsRuntimeState = {
listenersRegistered: boolean;
};
-const metricsStateKey = Symbol.for('poku-react-testing.metrics-runtime-state');
+const metricsStateKey = Symbol.for('@pokujs/react.metrics-runtime-state');
type MetricsStateGlobal = typeof globalThis & {
[metricsStateKey]?: MetricsRuntimeState;
From f4948dcb373d9ff663434fb7479af0ab9322bd9c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 2 Apr 2026 14:51:27 +0000
Subject: [PATCH 3/5] ci: add NPM_TOKEN validation check to publish step
Agent-Logs-Url: https://github.com/pokujs/react/sessions/658d8061-9c07-454c-8266-3c8c33bd8dbb
Co-authored-by: Lojhan <47763156+Lojhan@users.noreply.github.com>
---
.github/workflows/cd_publish.yml | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/cd_publish.yml b/.github/workflows/cd_publish.yml
index 305126f..529e991 100644
--- a/.github/workflows/cd_publish.yml
+++ b/.github/workflows/cd_publish.yml
@@ -63,4 +63,9 @@ jobs:
if: ${{ steps.release.outputs.releases_created }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: npm publish --provenance --access public
+ run: |
+ if [ -z "$NODE_AUTH_TOKEN" ]; then
+ echo "::error::NPM_TOKEN secret is not set. Please configure the NPM_TOKEN secret."
+ exit 1
+ fi
+ npm publish --provenance --access public
From f31e331c05626c53f2c93063dbab3d59199d129c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 3 Apr 2026 14:24:10 +0000
Subject: [PATCH 4/5] chore: remove redundant token check and restore CHANGELOG
history
Agent-Logs-Url: https://github.com/pokujs/react/sessions/deceeda4-06f8-4768-858c-08b0c42d9496
Co-authored-by: Lojhan <47763156+Lojhan@users.noreply.github.com>
---
.github/workflows/cd_publish.yml | 7 +------
CHANGELOG.md | 14 +++++++-------
2 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/cd_publish.yml b/.github/workflows/cd_publish.yml
index 529e991..305126f 100644
--- a/.github/workflows/cd_publish.yml
+++ b/.github/workflows/cd_publish.yml
@@ -63,9 +63,4 @@ jobs:
if: ${{ steps.release.outputs.releases_created }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: |
- if [ -z "$NODE_AUTH_TOKEN" ]; then
- echo "::error::NPM_TOKEN secret is not set. Please configure the NPM_TOKEN secret."
- exit 1
- fi
- npm publish --provenance --access public
+ run: npm publish --provenance --access public
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 599bdd4..00e2770 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,26 +1,26 @@
# Changelog
-## [1.2.0](https://github.com/pokujs/react/compare/v1.1.0...v1.2.0) (2026-04-01)
+## [1.2.0](https://github.com/Lojhan/poku-react-testing/compare/v1.1.0...v1.2.0) (2026-04-01)
### Features
-* refactor plugin internals and stabilize isolation:none ([#8](https://github.com/pokujs/react/issues/8)) ([cd2d93d](https://github.com/pokujs/react/commit/cd2d93d41f913c0a581663a8f9e261c2c6574f27))
+* refactor plugin internals and stabilize isolation:none ([#8](https://github.com/Lojhan/poku-react-testing/issues/8)) ([cd2d93d](https://github.com/Lojhan/poku-react-testing/commit/cd2d93d41f913c0a581663a8f9e261c2c6574f27))
-## [1.1.0](https://github.com/pokujs/react/compare/v1.0.1...v1.1.0) (2026-03-31)
+## [1.1.0](https://github.com/Lojhan/poku-react-testing/compare/v1.0.1...v1.1.0) (2026-03-31)
### Features
-- optimize react testing runtime and add prettier ([#6](https://github.com/pokujs/react/issues/6)) ([424194b](https://github.com/pokujs/react/commit/424194b2c5bdc5f8c3d3c7a41bc91b50d51dd38c))
+- optimize react testing runtime and add prettier ([#6](https://github.com/Lojhan/poku-react-testing/issues/6)) ([424194b](https://github.com/Lojhan/poku-react-testing/commit/424194b2c5bdc5f8c3d3c7a41bc91b50d51dd38c))
-## [1.0.1](https://github.com/pokujs/react/compare/v1.0.0...v1.0.1) (2026-03-31)
+## [1.0.1](https://github.com/Lojhan/poku-react-testing/compare/v1.0.0...v1.0.1) (2026-03-31)
### Bug Fixes
-- add repository metadata required for npm provenance ([#4](https://github.com/pokujs/react/issues/4)) ([f20b16a](https://github.com/pokujs/react/commit/f20b16a9ab72bb957743c7739a926d0bfb851f68))
+- add repository metadata required for npm provenance ([#4](https://github.com/Lojhan/poku-react-testing/issues/4)) ([f20b16a](https://github.com/Lojhan/poku-react-testing/commit/f20b16a9ab72bb957743c7739a926d0bfb851f68))
## 1.0.0 (2026-03-31)
### Bug Fixes
-- clarify Deno compatibility guidance in README ([#2](https://github.com/pokujs/react/issues/2)) ([ee28792](https://github.com/pokujs/react/commit/ee28792965b9cc9dacc8bee2fc96a5f84088f2d1))
+- clarify Deno compatibility guidance in README ([#2](https://github.com/Lojhan/poku-react-testing/issues/2)) ([ee28792](https://github.com/Lojhan/poku-react-testing/commit/ee28792965b9cc9dacc8bee2fc96a5f84088f2d1))
From 6260ad6905758582e669c5808e63f259c9707ba8 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 3 Apr 2026 14:32:48 +0000
Subject: [PATCH 5/5] chore: update benchmark files to use @pokujs/react
Agent-Logs-Url: https://github.com/pokujs/react/sessions/15e8343c-8ca3-401b-9e46-6f80fb7e4cba
Co-authored-by: Lojhan <47763156+Lojhan@users.noreply.github.com>
---
benchmark/REPORT.md | 4 ++--
benchmark/run.mjs | 14 +++++++-------
benchmark/tests/poku/concurrency.test.jsx | 2 +-
benchmark/tests/poku/context.test.jsx | 2 +-
benchmark/tests/poku/counter.test.jsx | 2 +-
benchmark/tests/poku/hooks.test.jsx | 2 +-
benchmark/tests/poku/lifecycle.test.jsx | 2 +-
7 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/benchmark/REPORT.md b/benchmark/REPORT.md
index 058ae62..a2d273e 100644
--- a/benchmark/REPORT.md
+++ b/benchmark/REPORT.md
@@ -29,8 +29,8 @@ Each scenario runs the **same 9 React tests** across 5 test files:
| Combination | DOM layer | Assertion style |
| --------------------------------- | ------------------------------ | -------------------- |
-| poku + @pokujs/react | happy-dom | `assert.strictEqual` |
-| poku + @pokujs/react | jsdom | `assert.strictEqual` |
+| poku + @pokujs/react | happy-dom | `assert.strictEqual` |
+| poku + @pokujs/react | jsdom | `assert.strictEqual` |
| jest 29 + @testing-library/react | jsdom (jest-environment-jsdom) | `expect().toBe()` |
| vitest 3 + @testing-library/react | jsdom | `expect().toBe()` |
| vitest 3 + @testing-library/react | happy-dom | `expect().toBe()` |
diff --git a/benchmark/run.mjs b/benchmark/run.mjs
index ae076d3..032c86c 100644
--- a/benchmark/run.mjs
+++ b/benchmark/run.mjs
@@ -1,7 +1,7 @@
#!/usr/bin/env node
/**
* React Testing Framework Benchmark
- * Compares: poku+poku-react-testing vs jest+RTL vs vitest+RTL
+ * Compares: poku+@pokujs/react vs jest+RTL vs vitest+RTL
*
* Metrics: wall-clock time, user CPU, sys CPU, peak RSS (macOS /usr/bin/time -l)
* Strategy: RUNS per scenario, drop 1 slowest + 1 fastest, report trimmed mean.
@@ -35,12 +35,12 @@ const POKU_BIN = join(BENCH, 'node_modules', 'poku', 'lib', 'bin', 'index.js');
// โโโ local build sync โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
/**
- * Replace the benchmark's poku-react-testing installation with a clean copy
+ * Replace the benchmark's @pokujs/react installation with a clean copy
* of the local dist/ so that Node resolves react/react-dom from
* benchmark/node_modules instead of following a symlink to the workspace root.
*/
function syncLocalBuild() {
- const dest = join(BENCH, 'node_modules', 'poku-react-testing');
+ const dest = join(BENCH, 'node_modules', '@pokujs', 'react');
rmSync(dest, { recursive: true, force: true });
mkdirSync(join(dest, 'dist'), { recursive: true });
copyFileSync(join(ROOT, 'package.json'), join(dest, 'package.json'));
@@ -267,7 +267,7 @@ if (!existsSync(join(BENCH, 'node_modules', 'poku'))) {
// โโโ sync local build โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
if (existsSync(join(ROOT, 'dist'))) {
- process.stdout.write(' Syncing local poku-react-testing build... ');
+ process.stdout.write(' Syncing local @pokujs/react build... ');
syncLocalBuild();
process.stdout.write('done\n\n');
}
@@ -474,8 +474,8 @@ Each scenario runs the **same 9 React tests** across 5 test files:
| Combination | DOM layer | Assertion style |
|---|---|---|
-| poku + poku-react-testing | happy-dom | \`assert.strictEqual\` |
-| poku + poku-react-testing | jsdom | \`assert.strictEqual\` |
+| poku + @pokujs/react | happy-dom | \`assert.strictEqual\` |
+| poku + @pokujs/react | jsdom | \`assert.strictEqual\` |
| jest 29 + @testing-library/react | jsdom (jest-environment-jsdom) | \`expect().toBe()\` |
| vitest 3 + @testing-library/react | jsdom | \`expect().toBe()\` |
| vitest 3 + @testing-library/react | happy-dom | \`expect().toBe()\` |
@@ -557,7 +557,7 @@ ${results
### Interpretation
-**poku + poku-react-testing** avoids the multi-process or bundler startup that jest (babel transform
+**poku + @pokujs/react** avoids the multi-process or bundler startup that jest (babel transform
pipeline) and vitest (Vite + module graph) require. Its architecture โ isolated per-file Node.js
processes with minimal bootstrap โ means cold-start overhead is proportional to the number of test
files, not to the framework's own initialization.
diff --git a/benchmark/tests/poku/concurrency.test.jsx b/benchmark/tests/poku/concurrency.test.jsx
index cb15731..dea6f4a 100644
--- a/benchmark/tests/poku/concurrency.test.jsx
+++ b/benchmark/tests/poku/concurrency.test.jsx
@@ -1,5 +1,5 @@
import { afterEach, assert, test } from 'poku';
-import { cleanup, fireEvent, render, screen } from 'poku-react-testing';
+import { cleanup, fireEvent, render, screen } from '@pokujs/react';
import React, { Suspense, use, useState, useTransition } from 'react';
afterEach(cleanup);
diff --git a/benchmark/tests/poku/context.test.jsx b/benchmark/tests/poku/context.test.jsx
index 3d37996..b89e70e 100644
--- a/benchmark/tests/poku/context.test.jsx
+++ b/benchmark/tests/poku/context.test.jsx
@@ -1,5 +1,5 @@
import { afterEach, assert, test } from 'poku';
-import { cleanup, render, screen } from 'poku-react-testing';
+import { cleanup, render, screen } from '@pokujs/react';
import React, { createContext, useContext } from 'react';
afterEach(cleanup);
diff --git a/benchmark/tests/poku/counter.test.jsx b/benchmark/tests/poku/counter.test.jsx
index 8e77616..6188b4d 100644
--- a/benchmark/tests/poku/counter.test.jsx
+++ b/benchmark/tests/poku/counter.test.jsx
@@ -1,5 +1,5 @@
import { afterEach, assert, test } from 'poku';
-import { cleanup, fireEvent, render, screen } from 'poku-react-testing';
+import { cleanup, fireEvent, render, screen } from '@pokujs/react';
import React, { useState } from 'react';
afterEach(cleanup);
diff --git a/benchmark/tests/poku/hooks.test.jsx b/benchmark/tests/poku/hooks.test.jsx
index a945d6b..47104a3 100644
--- a/benchmark/tests/poku/hooks.test.jsx
+++ b/benchmark/tests/poku/hooks.test.jsx
@@ -5,7 +5,7 @@ import {
render,
renderHook,
screen,
-} from 'poku-react-testing';
+} from '@pokujs/react';
import React, { useMemo, useState } from 'react';
afterEach(cleanup);
diff --git a/benchmark/tests/poku/lifecycle.test.jsx b/benchmark/tests/poku/lifecycle.test.jsx
index 423c3a9..f53598f 100644
--- a/benchmark/tests/poku/lifecycle.test.jsx
+++ b/benchmark/tests/poku/lifecycle.test.jsx
@@ -1,5 +1,5 @@
import { afterEach, assert, test } from 'poku';
-import { cleanup, render, screen } from 'poku-react-testing';
+import { cleanup, render, screen } from '@pokujs/react';
import React, { useEffect } from 'react';
afterEach(cleanup);