From 4949e620a6eee78fc085746a08a5b1170a893587 Mon Sep 17 00:00:00 2001 From: Hugo Alliaume Date: Sat, 20 Sep 2025 13:14:31 +0200 Subject: [PATCH] Refactor "test_package.sh" to its original purpose, add multiples checks for packages definition --- .github/workflows/code-quality.yaml | 110 ++++++++++++- bin/{test_package.sh => unit_test_package.sh} | 45 +----- src/Autocomplete/assets/package.json | 6 +- src/Chartjs/assets/package.json | 6 +- src/Cropperjs/assets/package.json | 6 +- src/Dropzone/assets/package.json | 6 +- src/LazyImage/assets/package.json | 2 +- src/LiveComponent/assets/package.json | 6 +- src/Map/assets/package.json | 2 +- src/Map/src/Bridge/Google/assets/package.json | 4 +- .../src/Bridge/Leaflet/assets/package.json | 4 +- src/Notify/assets/package.json | 6 +- src/React/assets/package.json | 6 +- src/StimulusBundle/assets/package.json | 2 +- src/Svelte/assets/package.json | 6 +- src/Swup/assets/package.json | 2 +- src/Swup/composer.json | 3 + src/TogglePassword/assets/package.json | 2 +- src/Toolkit/composer.json | 144 +++++++++--------- src/Translator/assets/package.json | 6 +- src/Turbo/assets/package.json | 6 +- src/Typed/assets/package.json | 2 +- src/Vue/assets/package.json | 6 +- 23 files changed, 231 insertions(+), 157 deletions(-) rename bin/{test_package.sh => unit_test_package.sh} (60%) diff --git a/.github/workflows/code-quality.yaml b/.github/workflows/code-quality.yaml index 9c1dc53e0a9..520c3d70037 100644 --- a/.github/workflows/code-quality.yaml +++ b/.github/workflows/code-quality.yaml @@ -19,6 +19,114 @@ concurrency: cancel-in-progress: true jobs: + validate-packages: + name: Validate packages definition + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Check all composer.json have label "symfony-ux" + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name composer.json); do + if ! jq -e '.keywords | index("symfony-ux")' "$file" > /dev/null; then + echo "File $file does not have the keyword 'symfony-ux' in its composer.json"; + exit 1; + fi + done + + - name: Check all composer.json have license "MIT" + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name composer.json); do + if ! jq -e '.license == "MIT"' "$file" > /dev/null; then + echo "File $file does not have the license 'MIT' in its composer.json"; + exit 1; + fi + done + + - name: Check all composer.json have minimum-stability "dev" + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name composer.json); do + if ! jq -e '."minimum-stability" == "dev"' "$file" > /dev/null; then + echo "File $file does not have the minimum-stability 'dev' in its composer.json"; + exit 1; + fi + done + + - name: Check all composer.json have dependency to "php" >=8.1 + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name composer.json); do + if ! jq -e '.require.php | test(">=8.1")' "$file" > /dev/null; then + echo "File $file does not have the dependency 'php' >=8.1 in its composer.json"; + exit 1; + fi + done + + - name: Check all package.json have license "MIT" + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name package.json -not -path "*/tests/*"); do + if ! jq -e '.license == "MIT"' "$file" > /dev/null; then + echo "File $file does not have the license 'MIT' in its package.json"; + exit 1; + fi + done + + - name: Check all package.json have keywords including "symfony-ux" + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name package.json -not -path "*/tests/*"); do + if ! jq -e '.keywords | index("symfony-ux")' "$file" > /dev/null; then + echo "File $file does not have the keyword 'symfony-ux' in its package.json"; + exit 1; + fi + done + + + - name: Check all package.json have type "module" + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name package.json -not -path "*/tests/*"); do + if ! jq -e '.type == "module"' "$file" > /dev/null; then + echo "File $file does not have the type 'module' in its package.json"; + exit 1; + fi + done + + - name: Check all package.json have files '["dist"]' + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name package.json -not -path "*/tests/*"); do + if ! jq -e '.files | index("dist")' "$file" > /dev/null; then + echo "File $file does not have the files 'dist' in its package.json"; + exit 1; + fi + done + + - name: Check all package.json peerDependencies are present in devDependencies and importmap to the exact same version + if: always() + run: | + for file in $(find src/ -mindepth 2 -type f -name package.json -not -path "*/tests/*"); do + peerDependencies=$(jq -r '.peerDependencies | keys[]' "$file") + for peerDependency in $peerDependencies; do + peerDependencyVersion=$(jq -r --arg dep "$peerDependency" '.peerDependencies[$dep]' "$file") + importmapVersion=$(jq -r ".symfony.importmap.\"$peerDependency\" | if type == \"string\" then . else .version end" "$file") + + if [ "$importmapVersion" == null ]; then + echo "File $file does not have the peerDependency '$peerDependency' in its symfony.importmap, skipping version check"; + continue + fi + + if [ "$peerDependencyVersion" != "$importmapVersion" ]; then + echo "File $file has a mismatch for $peerDependency: peerDependency version is '$peerDependencyVersion' but symfony.importmap version is '$importmapVersion'"; + exit 1; + fi + done + done + coding-style-js: name: JavaScript Coding Style runs-on: ubuntu-latest @@ -68,7 +176,7 @@ jobs: # TODO: Only Turbo has PHPStan configuration, let's improve this later :) PACKAGES=Turbo - #PACKAGES=$(find src/ -mindepth 2 -type f -name composer.json -not -path "*/vendor/*" -printf '%h\n' | sed 's/^src\///' | sort | tr '\n' ' ') + #PACKAGES=$(find src/ -mindepth 2 -type f -name composer.json -printf '%h\n' | sed 's/^src\///' | sort | tr '\n' ' ') echo "Packages: $PACKAGES" echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV diff --git a/bin/test_package.sh b/bin/unit_test_package.sh similarity index 60% rename from bin/test_package.sh rename to bin/unit_test_package.sh index d2b0f71096a..275d94cf212 100755 --- a/bin/test_package.sh +++ b/bin/unit_test_package.sh @@ -1,6 +1,6 @@ #!/bin/bash -# This script is used to test an UX package. +# This script is used to unit test assets from an UX package. # It also handle the case where a package has multiple versions of a peerDependency defined. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" @@ -21,13 +21,6 @@ if [ ! -d "$location" ]; then exit 1 fi -shift -case "$1" in - --unit) testType="unit" ;; - --browser) testType="browser" ;; - *) echo "Unknown test type: $2. Please use --unit or --browser."; exit 1 ;; -esac - shift args=("$@") @@ -38,15 +31,9 @@ if ! command -v jq &> /dev/null; then fi runTestSuite() { - if [ "$testType" == "unit" ]; then - echo -e "đŸ§Ș Running unit tests for $workspace...\n" - # Using "cd" instead of "pnpm --filter" prevent rendering issues in GitHub Actions that does not support nested groups - (cd "$location"; pnpm exec vitest --run "${args[@]}") || { all_tests_passed=false; } - elif [ "$testType" == "browser" ]; then - echo -e "đŸ§Ș Running browser tests for $workspace...\n" - # Using "cd" instead of "pnpm --filter" prevent rendering issues in GitHub Actions that does not support nested groups - (cd "$location"; pnpm exec playwright test "${args[@]}") || { all_tests_passed=false; } - fi + echo -e "đŸ§Ș Running unit tests for $workspace...\n" + # Using "cd" instead of "pnpm --filter" prevent rendering issues in GitHub Actions that does not support nested groups + (cd "$location"; pnpm exec vitest --run "${args[@]}") || { all_tests_passed=false; } } processWorkspace() { @@ -69,30 +56,6 @@ processWorkspace() { echo -e "⏳ Processing workspace $workspace at location $location...\n" - # TODO: Refactor the `test_package.sh` script to its simple form: only run unit tests for a given UX package, - # The rest will be moved to `pnpm` scripts or other CI checks - if [ "$testType" == "browser" ]; then - runTestSuite - fi - - echo "⚙ Checking '$package_json_path' for peerDependencies and importmap dependencies to have the same version" - deps=$(jq -r '.peerDependencies | keys[]' "$package_json_path") - for library in $deps; do - version=$(jq -r ".peerDependencies.\"$library\"" "$package_json_path") - importmap_version=$(jq -r ".symfony.importmap.\"$library\" | if type == \"string\" then . else .version end" "$package_json_path") - - if [ "$importmap_version" == null ]; then - echo " ⚠ No importmap version found for $library in $package_json_path, skipping..." - continue - fi - - if [ "$version" != "$importmap_version" ]; then - echo " ⚠ Version mismatch for $library: $version (peerDependencies) vs $importmap_version (importmap)" - echo " ⚠ You need to match the version of the \"peerDependency\" with the version in the \"importmap\"" - exit 1 - fi - done - echo "⚙ Checking '$package_json_path' for peerDependencies with multiple versions defined" deps_with_multiple_versions=$(jq -r '.peerDependencies | to_entries[] | select(.value | contains("||")) | .key' "$package_json_path") diff --git a/src/Autocomplete/assets/package.json b/src/Autocomplete/assets/package.json index 38995f7108b..6761ea5732b 100644 --- a/src/Autocomplete/assets/package.json +++ b/src/Autocomplete/assets/package.json @@ -18,9 +18,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Chartjs/assets/package.json b/src/Chartjs/assets/package.json index 16c2540e259..091d4a8cbdb 100644 --- a/src/Chartjs/assets/package.json +++ b/src/Chartjs/assets/package.json @@ -18,9 +18,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Cropperjs/assets/package.json b/src/Cropperjs/assets/package.json index b3f8088b9c1..08f295f8502 100644 --- a/src/Cropperjs/assets/package.json +++ b/src/Cropperjs/assets/package.json @@ -21,9 +21,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Dropzone/assets/package.json b/src/Dropzone/assets/package.json index 5d9ba1813e0..bf08c07d716 100644 --- a/src/Dropzone/assets/package.json +++ b/src/Dropzone/assets/package.json @@ -21,9 +21,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/LazyImage/assets/package.json b/src/LazyImage/assets/package.json index 4445f9d77b7..933aca8a11e 100644 --- a/src/LazyImage/assets/package.json +++ b/src/LazyImage/assets/package.json @@ -18,7 +18,7 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit", - "test:unit": "../../../bin/test_package.sh . --unit", + "test:unit": "../../../bin/unit_test_package.sh .", "check": "biome check", "ci": "biome ci" }, diff --git a/src/LiveComponent/assets/package.json b/src/LiveComponent/assets/package.json index 6f6b2712e76..33a313a5d27 100644 --- a/src/LiveComponent/assets/package.json +++ b/src/LiveComponent/assets/package.json @@ -23,9 +23,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Map/assets/package.json b/src/Map/assets/package.json index 5831b0e8472..ca06ca957a8 100644 --- a/src/Map/assets/package.json +++ b/src/Map/assets/package.json @@ -22,7 +22,7 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit", - "test:unit": "../../../bin/test_package.sh . --unit", + "test:unit": "../../../bin/unit_test_package.sh .", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Map/src/Bridge/Google/assets/package.json b/src/Map/src/Bridge/Google/assets/package.json index 3c5a6c4b4bb..929ba83fc68 100644 --- a/src/Map/src/Bridge/Google/assets/package.json +++ b/src/Map/src/Bridge/Google/assets/package.json @@ -20,8 +20,8 @@ "build": "tsx ../../../../../../bin/build_package.ts .", "watch": "tsx ../../../../../../bin/build_package.ts . --watch", "test": "pnpm run test:browser", - "test:browser": "../../../../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../../../../bin/test_package.sh . --browser --ui", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Map/src/Bridge/Leaflet/assets/package.json b/src/Map/src/Bridge/Leaflet/assets/package.json index 8fb2a48449e..dea40ce05ab 100644 --- a/src/Map/src/Bridge/Leaflet/assets/package.json +++ b/src/Map/src/Bridge/Leaflet/assets/package.json @@ -20,8 +20,8 @@ "build": "tsx ../../../../../../bin/build_package.ts .", "watch": "tsx ../../../../../../bin/build_package.ts . --watch", "test": "pnpm run test:browser", - "test:browser": "../../../../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../../../../bin/test_package.sh . --browser --ui", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Notify/assets/package.json b/src/Notify/assets/package.json index 92658b7950b..bfe4d2529ce 100644 --- a/src/Notify/assets/package.json +++ b/src/Notify/assets/package.json @@ -18,9 +18,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/React/assets/package.json b/src/React/assets/package.json index 1962807ea0d..55e8ed2dca8 100644 --- a/src/React/assets/package.json +++ b/src/React/assets/package.json @@ -18,9 +18,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/StimulusBundle/assets/package.json b/src/StimulusBundle/assets/package.json index 75955e9ca13..e48dddca18b 100644 --- a/src/StimulusBundle/assets/package.json +++ b/src/StimulusBundle/assets/package.json @@ -18,7 +18,7 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", + "test:unit": "../../../bin/unit_test_package.sh .", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Svelte/assets/package.json b/src/Svelte/assets/package.json index 1a25f1ff3bd..43decec5519 100644 --- a/src/Svelte/assets/package.json +++ b/src/Svelte/assets/package.json @@ -17,9 +17,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Swup/assets/package.json b/src/Swup/assets/package.json index a8a22a473c1..328a97e0358 100644 --- a/src/Swup/assets/package.json +++ b/src/Swup/assets/package.json @@ -18,7 +18,7 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit", - "test:unit": "../../../bin/test_package.sh . --unit", + "test:unit": "../../../bin/unit_test_package.sh .", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Swup/composer.json b/src/Swup/composer.json index 7b98214ca7b..97b4cec6965 100644 --- a/src/Swup/composer.json +++ b/src/Swup/composer.json @@ -17,6 +17,9 @@ "homepage": "https://symfony.com/contributors" } ], + "require": { + "php": ">=8.1" + }, "autoload": { "psr-4": { "Symfony\\UX\\Swup\\": "src/" diff --git a/src/TogglePassword/assets/package.json b/src/TogglePassword/assets/package.json index d95d54f2d26..5022aa5b1e9 100644 --- a/src/TogglePassword/assets/package.json +++ b/src/TogglePassword/assets/package.json @@ -21,7 +21,7 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit", - "test:unit": "../../../bin/test_package.sh . --unit", + "test:unit": "../../../bin/unit_test_package.sh .", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Toolkit/composer.json b/src/Toolkit/composer.json index b8b991a7f83..7c8678f400a 100644 --- a/src/Toolkit/composer.json +++ b/src/Toolkit/composer.json @@ -1,78 +1,78 @@ { - "name": "symfony/ux-toolkit", - "type": "symfony-bundle", - "description": "A tool to easily create a design system in your Symfony app with customizable, well-crafted Twig components", - "keywords": [ - "symfony-ux", - "twig", - "components" - ], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "symfony/ux-toolkit", + "type": "symfony-bundle", + "description": "A tool to easily create a design system in your Symfony app with customizable, well-crafted Twig components", + "keywords": [ + "symfony-ux", + "design-system", + "ui", + "twig", + "components" + ], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Hugo Alliaume", + "email": "hugo@alliau.me" + }, + { + "name": "Jean-François LĂ©pine", + "email": "lepinejeanfrancois@gmail.com" + }, + { + "name": "Simon AndrĂ©", + "email": "smn.andre@gmail.com" + } + ], + "require": { + "php": ">=8.1", + "twig/twig": "^3.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/filesystem": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/twig-bundle": "^6.4|^7.0|^8.0", + "symfony/ux-twig-component": "^2.25.1", + "symfony/yaml": "^6.4|^7.0|^8.0" }, - { - "name": "Hugo Alliaume", - "email": "hugo@alliau.me" + "require-dev": { + "symfony/finder": "6.4|^7.0|^8.0", + "twig/extra-bundle": "^3.19|^4.0", + "twig/html-extra": "^3.19", + "zenstruck/console-test": "^1.7", + "symfony/http-client": "6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/phpunit-bridge": "^7.2|^8.0", + "vincentlanglet/twig-cs-fixer": "^3.9", + "spatie/phpunit-snapshot-assertions": "^4.2.17", + "phpunit/phpunit": "^9.6.22", + "symfony/ux-icons": "^2.18", + "tales-from-a-dev/twig-tailwind-extra": "^0.4.0" }, - { - "name": "Jean-François LĂ©pine", - "email": "lepinejeanfrancois@gmail.com" + "bin": [ + "bin/ux-toolkit-kit-create", + "bin/ux-toolkit-kit-debug" + ], + "autoload": { + "psr-4": { + "Symfony\\UX\\Toolkit\\": "src" + }, + "exclude-from-classmap": [] }, - { - "name": "Simon AndrĂ©", - "email": "smn.andre@gmail.com" - } - ], - "require": { - "php": ">=8.1", - "twig/twig": "^3.0", - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/filesystem": "^6.4|^7.0|^8.0", - "symfony/framework-bundle": "^6.4|^7.0|^8.0", - "symfony/twig-bundle": "^6.4|^7.0|^8.0", - "symfony/ux-twig-component": "^2.25.1", - "symfony/yaml": "^6.4|^7.0|^8.0" - }, - "require-dev": { - "symfony/finder": "6.4|^7.0|^8.0", - "twig/extra-bundle": "^3.19|^4.0", - "twig/html-extra": "^3.19", - "zenstruck/console-test": "^1.7", - "symfony/http-client": "6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/phpunit-bridge": "^7.2|^8.0", - "vincentlanglet/twig-cs-fixer": "^3.9", - "spatie/phpunit-snapshot-assertions": "^4.2.17", - "phpunit/phpunit": "^9.6.22", - "symfony/ux-icons": "^2.18", - "tales-from-a-dev/twig-tailwind-extra": "^0.4.0" - }, - "bin": [ - "bin/ux-toolkit-kit-create", - "bin/ux-toolkit-kit-debug" - ], - "autoload": { - "psr-4": { - "Symfony\\UX\\Toolkit\\": "src" + "autoload-dev": { + "psr-4": { + "Symfony\\UX\\Toolkit\\Tests\\": "tests/" + } }, - "exclude-from-classmap": [] - }, - "autoload-dev": { - "psr-4": { - "Symfony\\UX\\Toolkit\\Tests\\": "tests/" - } - }, - "conflict": { - "symfony/ux-twig-component": "<2.21" - }, - "extra": { - "thanks": { - "name": "symfony/ux", - "url": "https://github.com/symfony/ux" - } - } + "extra": { + "thanks": { + "name": "symfony/ux", + "url": "https://github.com/symfony/ux" + } + }, + "minimum-stability": "dev" } diff --git a/src/Translator/assets/package.json b/src/Translator/assets/package.json index 3f9fe4c27a4..a0a7a213dea 100644 --- a/src/Translator/assets/package.json +++ b/src/Translator/assets/package.json @@ -18,9 +18,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Turbo/assets/package.json b/src/Turbo/assets/package.json index 15cbbddab6f..bb23aa919a6 100644 --- a/src/Turbo/assets/package.json +++ b/src/Turbo/assets/package.json @@ -23,9 +23,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Typed/assets/package.json b/src/Typed/assets/package.json index ea679e4e943..e92fd54b250 100644 --- a/src/Typed/assets/package.json +++ b/src/Typed/assets/package.json @@ -18,7 +18,7 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit", - "test:unit": "../../../bin/test_package.sh . --unit", + "test:unit": "../../../bin/unit_test_package.sh .", "check": "biome check", "ci": "biome ci" }, diff --git a/src/Vue/assets/package.json b/src/Vue/assets/package.json index 9990c9d125e..293a4efbf19 100644 --- a/src/Vue/assets/package.json +++ b/src/Vue/assets/package.json @@ -18,9 +18,9 @@ "build": "tsx ../../../bin/build_package.ts .", "watch": "tsx ../../../bin/build_package.ts . --watch", "test": "pnpm run test:unit && pnpm run test:browser", - "test:unit": "../../../bin/test_package.sh . --unit", - "test:browser": "../../../bin/test_package.sh . --browser", - "test:browser:ui": "../../../bin/test_package.sh . --browser --ui", + "test:unit": "../../../bin/unit_test_package.sh .", + "test:browser": "playwright test", + "test:browser:ui": "playwright test --ui", "check": "biome check", "ci": "biome ci" },