diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-24 00:47:20 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-24 00:47:53 +0900 |
| commit | 340164c64e90d44b1bdf620b514166db1f76cc98 (patch) | |
| tree | 86195fe5ff8582b64e0324e9f40619e36c04948f /crates/shirabe/tests/package/dumper/array_dumper_test.rs | |
| parent | 8fe3390d064303b86133a1d2983144a4818a7121 (diff) | |
| download | php-shirabe-340164c64e90d44b1bdf620b514166db1f76cc98.tar.gz php-shirabe-340164c64e90d44b1bdf620b514166db1f76cc98.tar.zst php-shirabe-340164c64e90d44b1bdf620b514166db1f76cc98.zip | |
test: port more unimplemented tests
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/package/dumper/array_dumper_test.rs')
| -rw-r--r-- | crates/shirabe/tests/package/dumper/array_dumper_test.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/crates/shirabe/tests/package/dumper/array_dumper_test.rs b/crates/shirabe/tests/package/dumper/array_dumper_test.rs index 64880f1..1e5fd05 100644 --- a/crates/shirabe/tests/package/dumper/array_dumper_test.rs +++ b/crates/shirabe/tests/package/dumper/array_dumper_test.rs @@ -79,11 +79,16 @@ fn test_dump_abandoned_replacement() { ); } -// PHP drives ~25 heterogeneous setters dynamically (set{ucfirst(method)}) across strings, -// arrays, a DateTime and Link maps, then checks the corresponding dumped key. Reproducing -// that dynamic dispatch faithfully would require per-case wiring for every property type. +// PHP drives 26 heterogeneous setters dynamically (set{ucfirst(method)}) across strings, +// arrays, a DateTime and Link maps, then checks the corresponding dumped key. Three of the +// data sets cannot be expressed faithfully because the ported production types were narrowed +// from PHP's loose `array`: the `authors` set passes plain strings (Rust set_authors wants +// Vec<IndexMap<String,String>>), `scripts` passes a bare string value (set_scripts wants +// IndexMap<String,Vec<String>>), and `funding` passes a single map (set_funding wants +// Vec<IndexMap<String,PhpMixed>>); the dumper additionally re-wraps each of these. Porting the +// remaining 23 would drop those three cases, so testKeys stays unported (all-or-nothing). #[test] -#[ignore = "RootPackageHandle lacks set_type/set_release_date/set_binaries/set_php_ext setters required by the data provider's type/time/bin/php-ext cases"] +#[ignore = "authors/scripts/funding data sets pass loosely-typed PHP arrays the narrowed Rust set_authors/set_scripts/set_funding types cannot represent, and the dumper re-wraps them; faithful all-or-nothing port blocked without loosening those production types"] fn test_keys() { todo!() } |
