From e97d49635ad36faefa83edb0617bb6b7cf26cbf4 Mon Sep 17 00:00:00 2001 From: Shinyaigeek Date: Sun, 24 May 2026 16:55:37 +0900 Subject: [PATCH 1/2] chore: replace placeholder failing test scripts (#555) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - root `test` → `pnpm -r run test` so `pnpm test` runs the real test suites in lang-core / react-headless / svelte-lang / vue-lang (and skips packages without a `test` script). - drop the `echo "Error: no test specified" && exit 1` placeholder from `packages/react-ui`. - add `--passWithNoTests` to `packages/react-lang`'s `test` so the empty-suite case exits 0 instead of failing the recursive run. The renderer test suite (#549) can land on top without further changes. Closes #555. --- package.json | 2 +- packages/react-lang/package.json | 2 +- packages/react-ui/package.json | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d6d19e7f9..3bf7bbf2b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "The open standard for generative UI — a streaming-first language, React runtime, and component libraries for building AI-powered chat and copilot interfaces", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "pnpm -r run test" }, "devDependencies": { "@arethetypeswrong/cli": "^0.18.2", diff --git a/packages/react-lang/package.json b/packages/react-lang/package.json index d35f7af57..72b6693a3 100644 --- a/packages/react-lang/package.json +++ b/packages/react-lang/package.json @@ -25,7 +25,7 @@ } }, "scripts": { - "test": "vitest run", + "test": "vitest run --passWithNoTests", "build": "tsdown", "watch": "tsdown --watch", "typecheck": "tsc --noEmit", diff --git a/packages/react-ui/package.json b/packages/react-ui/package.json index d381a04fb..475a3efc8 100644 --- a/packages/react-ui/package.json +++ b/packages/react-ui/package.json @@ -60,7 +60,6 @@ "README.md" ], "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", "copy-css": "node cp-css.js", "generate-scss-index": "node src/scripts/scss-import.js", "generate:css-utils": "tsx src/scripts/generate-css-utils.ts", From bd82fa34a3a337cc6bb2a2a9939bdbe90610db1a Mon Sep 17 00:00:00 2001 From: Shinyaigeek Date: Sun, 24 May 2026 17:11:59 +0900 Subject: [PATCH 2/2] chore: align react-ui test with react-lang (passWithNoTests) Use the same `vitest run --passWithNoTests` placeholder in @openuidev/react-ui as in @openuidev/react-lang, so: - `pnpm --filter @openuidev/react-ui test` exits 0 instead of "No script named 'test'" (review feedback) - the package is drop-in ready when a real test suite lands (Storybook smoke tests, helper unit tests, etc.) Requires adding `vitest` to react-ui's devDependencies. --- packages/react-ui/package.json | 4 +- pnpm-lock.yaml | 87 ++++++++++++++++++++++++++++++---- 2 files changed, 80 insertions(+), 11 deletions(-) diff --git a/packages/react-ui/package.json b/packages/react-ui/package.json index 475a3efc8..5a7e9f461 100644 --- a/packages/react-ui/package.json +++ b/packages/react-ui/package.json @@ -60,6 +60,7 @@ "README.md" ], "scripts": { + "test": "vitest run --passWithNoTests", "copy-css": "node cp-css.js", "generate-scss-index": "node src/scripts/scss-import.js", "generate:css-utils": "tsx src/scripts/generate-css-utils.ts", @@ -158,7 +159,8 @@ "storybook": "^8.5.3", "tailwindcss": "^3", "tsx": "^4.19.2", - "vite": "^5.0.0" + "vite": "^5.0.0", + "vitest": "^4.0.18" }, "keywords": [ "openui", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf1b406dd..b97609e7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -289,7 +289,7 @@ importers: version: 0.0.45 '@ag-ui/mastra': specifier: ^1.0.1 - version: 1.0.1(f00fa45f575c251283cb17e81c0eba82) + version: 1.0.1(mo2d2k6urt4bfbrhfsfscm4ram) '@mastra/core': specifier: 1.15.0 version: 1.15.0(@cfworker/json-schema@4.1.1)(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@1.0.0)(zod-to-json-schema@3.25.2(zod@4.3.6))(zod@4.3.6))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.3.6))(@types/json-schema@7.0.15)(openapi-types@12.1.3)(zod@4.3.6) @@ -1446,6 +1446,9 @@ importers: vite: specifier: ^5.0.0 version: 5.4.19(@types/node@22.15.32)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0) + vitest: + specifier: ^4.0.18 + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.15.32)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3) packages/svelte-lang: dependencies: @@ -1473,7 +1476,7 @@ importers: version: 5.55.1 svelte-check: specifier: ^4.0.0 - version: 4.4.5(picomatch@4.0.3)(svelte@5.55.1)(typescript@5.9.3) + version: 4.4.5(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3) typescript: specifier: ^5.0.0 version: 5.9.3 @@ -6814,7 +6817,6 @@ packages: '@rolldown/binding-darwin-arm64@1.0.0-rc.16': resolution: {integrity: sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] os: [darwin] '@rolldown/binding-darwin-x64@1.0.0-rc.12': @@ -16213,7 +16215,7 @@ snapshots: - react - react-dom - '@ag-ui/mastra@1.0.1(f00fa45f575c251283cb17e81c0eba82)': + '@ag-ui/mastra@1.0.1(mo2d2k6urt4bfbrhfsfscm4ram)': dependencies: '@ag-ui/client': 0.0.49 '@ag-ui/core': 0.0.45 @@ -19312,7 +19314,7 @@ snapshots: rc9: 3.0.0 std-env: 3.10.0 - '@nuxt/vite-builder@3.21.2(cda632d3acfa8c47554ee5be1e146aef)': + '@nuxt/vite-builder@3.21.2(thirvmyz7u7sotpvl5josuvsem)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) @@ -24846,6 +24848,14 @@ snapshots: optionalDependencies: vite: 5.4.19(@types/node@25.3.2)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0) + '@vitest/mocker@4.0.18(vite@6.4.1(@types/node@22.15.32)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3))': + dependencies: + '@vitest/spy': 4.0.18 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 6.4.1(@types/node@22.15.32)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3) + '@vitest/mocker@4.0.18(vite@6.4.1(@types/node@25.3.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.0.18 @@ -27132,7 +27142,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: @@ -27154,7 +27164,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.29.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -30620,7 +30630,7 @@ snapshots: '@nuxt/nitro-server': 3.21.2(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@3.21.2(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1)(@parcel/watcher@2.5.1)(@types/node@25.3.2)(@vue/compiler-sfc@3.5.31)(cac@6.7.14)(db0@0.3.4)(eslint@9.29.0(jiti@2.6.1))(ioredis@5.10.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rolldown@1.0.0-rc.12(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1))(rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.12(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1))(rollup@4.60.1))(rollup@4.60.1)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(typescript@5.9.3)(vite@7.3.1(@types/node@25.3.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3))(vue-tsc@2.2.12(typescript@5.9.3))(yaml@2.8.3))(rolldown@1.0.0-rc.12(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1))(typescript@5.9.3) '@nuxt/schema': 3.21.2 '@nuxt/telemetry': 2.7.0(@nuxt/kit@3.21.2(magicast@0.5.2)) - '@nuxt/vite-builder': 3.21.2(cda632d3acfa8c47554ee5be1e146aef) + '@nuxt/vite-builder': 3.21.2(thirvmyz7u7sotpvl5josuvsem) '@unhead/vue': 2.1.13(vue@3.5.31(typescript@5.9.3)) '@vue/shared': 3.5.31 c12: 3.3.3(magicast@0.5.2) @@ -33252,11 +33262,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.4.5(picomatch@4.0.3)(svelte@5.55.1)(typescript@5.9.3): + svelte-check@4.4.5(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 svelte: 5.55.1 @@ -34163,6 +34173,24 @@ snapshots: sass: 1.89.2 terser: 5.43.0 + vite@6.4.1(@types/node@22.15.32)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.43.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.15.32 + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.32.0 + sass: 1.89.2 + terser: 5.43.0 + tsx: 4.20.3 + yaml: 2.8.3 + vite@6.4.1(@types/node@25.3.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3): dependencies: esbuild: 0.25.12 @@ -34243,6 +34271,45 @@ snapshots: - supports-color - terser + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.15.32)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3): + dependencies: + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(vite@6.4.1(@types/node@22.15.32)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 6.4.1(@types/node@22.15.32)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@types/node': 22.15.32 + jsdom: 26.1.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.2)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.89.2)(terser@5.43.0)(tsx@4.20.3)(yaml@2.8.3): dependencies: '@vitest/expect': 4.0.18