From da602f1cb1d555c7826fa3d026df66b82061cda4 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 5 Aug 2026 04:07:35 +0900 Subject: test(plugin): pin a composer-normalize fixture and compare its listing The pinned plugin and its real dependency tree (nine packages, fetched by commit and verified by tree hash into the git-ignored ext/) install under both implementations, and the list/help renderings of the plugin-provided normalize command must match upstream byte for byte. The execution comparison is written but ignored: NormalizeCommand builds a second, in-process Composer instance, and the worker's proxy stubs reject native construction of the classes that path instantiates. Stale comments about the missing worker-side application are updated to the current facts. Co-Authored-By: Claude Fable 5 --- .../fixtures/e2e-normalize/project/composer.json | 228 +++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 crates/shirabe/tests/plugin/fixtures/e2e-normalize/project/composer.json (limited to 'crates/shirabe/tests/plugin/fixtures/e2e-normalize/project/composer.json') diff --git a/crates/shirabe/tests/plugin/fixtures/e2e-normalize/project/composer.json b/crates/shirabe/tests/plugin/fixtures/e2e-normalize/project/composer.json new file mode 100644 index 00000000..9af30ddb --- /dev/null +++ b/crates/shirabe/tests/plugin/fixtures/e2e-normalize/project/composer.json @@ -0,0 +1,228 @@ +{ + "description": "E2E fixture project: install and run ergebnis/composer-normalize. The top-level keys are deliberately out of schema order so the normalize run has something to do.", + "require": { + "ergebnis/composer-normalize": "2.52.0" + }, + "name": "shirabe/e2e-composer-normalize", + "config": { + "allow-plugins": { + "ergebnis/composer-normalize": true + } + }, + "repositories": [ + { + "type": "package", + "package": { + "name": "ergebnis/composer-normalize", + "version": "2.52.0", + "type": "composer-plugin", + "autoload": { + "psr-4": { + "Ergebnis\\Composer\\Normalize\\": "src/" + } + }, + "require": { + "ext-json": "*", + "composer-plugin-api": "^2.0.0", + "ergebnis/json": "^1.4.0", + "ergebnis/json-normalizer": "^4.9.0", + "ergebnis/json-printer": "^3.7.0", + "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", + "localheinz/diff": "^1.3.0" + }, + "extra": { + "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin" + }, + "dist": { + "type": "path", + "url": "../ext/composer-normalize-2.52.0" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "ergebnis/json", + "version": "1.6.0", + "autoload": { + "psr-4": { + "Ergebnis\\Json\\": "src/" + } + }, + "require": { + "ext-json": "*" + }, + "dist": { + "type": "path", + "url": "../ext/json-1.6.0" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "ergebnis/json-normalizer", + "version": "4.10.1", + "autoload": { + "psr-4": { + "Ergebnis\\Json\\Normalizer\\": "src/" + } + }, + "require": { + "ext-json": "*", + "ergebnis/json": "^1.2.0", + "ergebnis/json-pointer": "^3.4.0", + "ergebnis/json-printer": "^3.5.0", + "ergebnis/json-schema-validator": "^4.2.0", + "justinrainbow/json-schema": "^5.2.12 || ^6.0.0" + }, + "dist": { + "type": "path", + "url": "../ext/json-normalizer-4.10.1" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "ergebnis/json-pointer", + "version": "3.8.0", + "autoload": { + "psr-4": { + "Ergebnis\\Json\\Pointer\\": "src/" + } + }, + "dist": { + "type": "path", + "url": "../ext/json-pointer-3.8.0" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "ergebnis/json-printer", + "version": "3.8.1", + "autoload": { + "psr-4": { + "Ergebnis\\Json\\Printer\\": "src/" + } + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*" + }, + "dist": { + "type": "path", + "url": "../ext/json-printer-3.8.1" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "ergebnis/json-schema-validator", + "version": "4.5.1", + "autoload": { + "psr-4": { + "Ergebnis\\Json\\SchemaValidator\\": "src/" + } + }, + "require": { + "ext-json": "*", + "ergebnis/json": "^1.2.0", + "ergebnis/json-pointer": "^3.4.0", + "justinrainbow/json-schema": "^5.2.12 || ^6.0.0" + }, + "dist": { + "type": "path", + "url": "../ext/json-schema-validator-4.5.1" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "justinrainbow/json-schema", + "version": "6.10.0", + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "require": { + "marc-mabe/php-enum": "^4.4" + }, + "dist": { + "type": "path", + "url": "../ext/json-schema-6.10.0" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "marc-mabe/php-enum", + "version": "4.7.2", + "autoload": { + "psr-4": { + "MabeEnum\\": "src/" + }, + "classmap": [ + "stubs/Stringable.php" + ] + }, + "dist": { + "type": "path", + "url": "../ext/php-enum-4.7.2" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "type": "package", + "package": { + "name": "localheinz/diff", + "version": "1.3.0", + "autoload": { + "classmap": [ + "src/" + ] + }, + "dist": { + "type": "path", + "url": "../ext/diff-1.3.0" + }, + "transport-options": { + "symlink": false + } + } + }, + { + "packagist.org": false + } + ] +} -- cgit v1.3.1