aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests
AgeCommit message (Collapse)Author
2026-06-21test(command): port remaining command tests as ApplicationTester stubsnsfisis
Adds Base/Bump/Config/DumpAutoload/Fund/Global/Init/Install/Licenses/Remove/ Repository/Require/RunScript/Show/Suggests/Update command tests. All ignored: they need the ApplicationTester/initTempComposer harness (Init also reflects into protected helpers). setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port VCS driver tests ↵nsfisis
(Git/GitHub/GitLab/Bitbucket/Svn/Perforce/Forgejo) Svn/GitBitbucket/Perforce supports pass. GitHub::supports reaches non-strict in_array (todo!()) and Forgejo::supports uses a regex the regex crate cannot compile, so those are ignored. All API-driven cases mock the HttpDownloader (curl) / ProcessExecutor and are stubbed. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port PathRepositoryTest as stubsnsfisis
PathRepository does not implement RepositoryInterface and exposes no public getPackages/count/hasPackage (delegation to its inner ArrayRepository is not ported), so the cases cannot be driven; the unversioned ones also need the VersionGuesser. All stubbed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(package): port RootPackageLoaderTest as stubsnsfisis
All ignored: load() parses require constraints via a look-around regex and the cases mock RepositoryManager / ProcessExecutor / VersionGuesser. Wires up the package/loader test submodule. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port SecurityAdvisoryPoolFilter, downloader/command/app stubsnsfisis
All ignored/todo!(): the advisory filter parses affectedVersions via a look-around regex; the Hg/Fossil/Perforce/Archive downloaders and RepositoryManager need mocked process/HttpDownloader (curl); the Validate/ Archive commands, ApplicationTest and CompletionFunctionalTest need the ApplicationTester/console harness. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(dependency-resolver): port RuleSetTestnsfisis
addWhenTypeIsNotRecognized passes (the type check precedes the hash). All other cases call RuleSet::add, which computes get_hash -> hash_raw (todo!()), and prettyString also mocks RepositorySet/Request; those are ignored. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port GitHub/GitLab/Forgejo, Search/CheckPlatformReqs, ZipArchiver stubsnsfisis
All ignored/todo!(): the auth-util tests mock IO/Config/HttpDownloader, the command tests need ApplicationTester, and ZipArchiver builds a zip via ZipArchive (todo!()). setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port ArtifactRepositoryTest and BinaryInstallerTest as stubsnsfisis
ArtifactRepository reads archives via ZipArchive/PharData (todo!()); BinaryInstaller installs and executes a real PHP binary and mocks a Package. Both stubbed. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port TransactionTest and StrictConfirmationQuestionTest as stubsnsfisis
TransactionTest needs Transaction::new (uasort_map todo!()) and non-root link setters; StrictConfirmationQuestionTest needs Symfony QuestionHelper. Both stubbed. Wires up the question test target. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port HgDriverTest and RootAliasPackageTestnsfisis
HgDriver::supports and RootAliasPackage setRequires pass. The other Hg cases need an HgDriver instance (HttpDownloader/curl, mocked process); the other RootAliasPackage setters only update alias_of, not the alias's own copy, so those getters stay empty. All such cases ignored. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(cache): port CacheTestnsfisis
clearCache verified against a real Cache over a temp dir; the gc() cases mock Cache::getFinder (not overridable from a test) and are stubbed. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port MetapackageInstallerTest and SelfUpdate/Status/Home command stubsnsfisis
MetapackageInstaller install/uninstall verified against a real InstalledArrayRepository; update reaches version_compare (todo!()) and is ignored. The command tests need the ApplicationTester harness (stubbed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port FilterRepositoryTestnsfisis
All cases pass: only/exclude matching, both-filters guard, disabled child advisories, and canonical vs non-canonical loadPackages. setUp's repository fixture is inlined; teardown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(dependency-resolver): port RuleTestnsfisis
equals/type/enable/disable/isAssertion pass; getHash reaches hash_raw (todo!()) and prettyString needs mocked RepositorySet/Request, so both are stubbed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(package): port BasePackageTestnsfisis
setRepository (same/another) and packageNamesToRegexp pass; the dev-version formatting case mocks abstract BasePackage getters and is stubbed. Adds the test_case helper to the package test target. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(factory): ignore fails-if-dir to avoid COMPOSER env racensfisis
In the full suite it races test_get_composer_json_path_from_env over the global COMPOSER env; without the deferred tearDown clearing it, only one mutator can run. Keeps from_env as the sole COMPOSER mutator. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port IniHelperTest and RepositoryUtilsTestnsfisis
IniHelper cases reach XdebugHandler::get_all_ini_files (todo!()); RepositoryUtils filterRequiredPackages is fully modeled but building linked packages via ArrayLoader parses constraints with a look-around regex the regex crate cannot compile. Both ignored. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port ClassLoader/HttpDownloader/Reinstall command testsnsfisis
ClassLoader::getPrefixes verified; loadClass/serializability rely on PHP runtime class loading and serialize() (stubbed). HttpDownloader and Reinstall need curl/ApplicationTester (stubbed). Wires up the autoload test target. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port TlsHelperTest and HhvmDetectorTest as stubsnsfisis
TlsHelper is not ported; the HhvmDetector cases are always skipped (no HHVM, no hhvm executable). All ignored/todo!(). setUp not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(filter): port IgnoreListPlatformRequirementFilterTestnsfisis
Both isIgnored and isUpperBoundIgnored data sets pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test: port Documentation/Xz/Audit/ErrorHandler/PharArchiver tests as stubsnsfisis
All ignored/todo!(): they need infrastructure not yet ported (console Application, HttpDownloader/curl, ApplicationTester, PHP runtime error handler, PharData/ZipArchive). Wires up the downloader test target. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port RepositoryFactoryTestnsfisis
generateRepositoryName ported (ignored: integer index is not stringified). The manager case mocks IO/Config/HttpDownloader and uses reflection, so it is stubbed. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(script): port Script EventTestnsfisis
Both cases ignored: calculate_originating_event is todo!(), and the nested case cannot be expressed since set_originating_event takes a concrete event_dispatcher::Event. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(factory): port FactoryTestnsfisis
getComposerFile env paths verified. The default-values case mocks IO/Config (unportable); the unset-env case is order-dependent without the deferred tearDown, so both are ignored. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port FossilDriverTestnsfisis
Wires up the repository/vcs submodule. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(composer): port ComposerTestnsfisis
setPackage/setDownloadManager getters verified against real instances. The repository-manager, installation-manager and locker cases build an HttpDownloader, which reaches curl_multi_init (todo!()) in the php-shim, so they are ignored. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(command): port Diagnose/Exec/ClearCache command testsnsfisis
Stubbed as todo!()/ignored: all need the ApplicationTester/initTempComposer harness, which is not yet ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(json): port JsonFormatterTestnsfisis
Stubbed as todo!()/ignored: Composer\Json\JsonFormatter is not yet ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port MetadataMinifierTestnsfisis
Stubbed as todo!()/ignored: MetadataMinifier::minify is not ported upstream. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(command): port AboutCommandTestnsfisis
Stubbed as todo!()/ignored: needs the ApplicationTester harness, not yet ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(installer): port InstallerEventTestnsfisis
Ignored: Transaction::new reaches a todo!() (uasort_map) in the php-shim. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port InstalledRepositoryTestnsfisis
testAddRepository maps the expected LogicException to #[should_panic] since InstalledRepository::add_repository guards with assert!. testFindPackagesWithReplacersAndProviders is #[ignore] because that assert omits InstalledRepositoryInterface, so adding an InstalledArrayRepository panics before the lookup runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port ArrayRepositoryTestnsfisis
Seven cases pass against ArrayRepository. testAutomaticallyAddAliased... is #[ignore] because AliasPackage::get_unique_name returns the aliased package's unique name rather than the alias's own version, so has_package cannot find the alias version. Adds a shared get_alias_package helper to the test TestCase, building the alias via from_rc_unchecked since the public handle API exposes link/alias construction only indirectly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(repository): port CompositeRepositoryTestnsfisis
Six cases pass against ArrayRepository/CompositeRepository. testFindPackage is #[ignore] because constraint string parsing relies on a look-around regex that the regex crate does not support. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port PackageSorterTestnsfisis
PackageSorter::sort_packages reaches strnatcasecmp (a todo!() in the php-shim) whenever it compares equally-weighted packages, so the cases are #[ignore]. createPackage is reconstructed via ArrayLoader because the public handle API only exposes link setters on root packages. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(advisory): port AuditConfigTestnsfisis
Config::merge reaches array_merge (a todo!() in the php-shim), so the cases that build a Config are #[ignore]. testMixedFormats additionally relies on integer-key handling that AuditConfig::parse_ignore_with_apply does not yet implement. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util-http): port RequestProxyTestnsfisis
Six cases pass against the implemented RequestProxy. The SSL-proxy case depends on curl_version (a todo!() in the php-shim) and is #[ignore]. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(platform): port VersionTestnsfisis
Version::parse_openssl/parse_libjpeg/parse_zoneinfo_version rely on PCRE patterns that compile_php_pattern in the php-shim cannot yet parse, so the cases are #[ignore] while the test code compiles. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port ZipTestnsfisis
Zip::get_composer_json relies on ZipArchive, whose constructor is a todo!() in the php-shim, so all cases are #[ignore] while compiling. Reuses the existing PHP Fixtures/Zip archives. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port NoProxyPatternTestnsfisis
NoProxyPattern::test reaches a todo!() (substr_count) in the php-shim, so all cases are marked #[ignore] while the test code compiles. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21style: apply rustfmt to ported test filesnsfisis
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(dependency-resolver): port PoolTest with shared TestCase helpersnsfisis
Add tests/common/test_case.rs (get_package, get_version_constraint) ported from the PHP TestCase, included into the dependency_resolver binary via #[path]. PoolTest's testPool/testPackageById/testWhatProvidesWhenPackageCannotBeFound pass; testWhatProvidesPackageWithConstraint is #[ignore] (constraint matching reaches a todo!() in the php-shim). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(package): port VersionBumperTestnsfisis
Marked #[ignore] because VersionBumper::bump_requirement uses a look-around regex pattern the regex crate cannot compile. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(package): port CompletePackageTestnsfisis
All four cases pass: naming/versioning/marshalling semantics across the versioning-scheme provider, and target-dir normalization. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(dependency-resolver): port RuleSetIteratorTestnsfisis
Both testForeach and testKeys pass. The PHP foreach over the Iterator is reproduced with the ported valid()/current()/key()/next() methods; the original assertEquals on rule objects is checked via Rc::ptr_eq since the iterator yields the same Rc instances. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port ConfigValidatorTestnsfisis
Reuses the existing PHP Fixtures composer_*.json. All four cases are marked #[ignore] because ConfigValidator::validate reaches a todo!() in the php-shim. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port UrlTestnsfisis
Both testUpdateDistReference and testSanitize are marked #[ignore] because the underlying regex patterns cannot be compiled by the regex crate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(io): port NullIOTestnsfisis
All eight cases pass against NullIO's no-op IOInterfaceImmutable methods. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(util): port ProxyItemTestnsfisis
Both testThrowsOnMalformedUrl and testUrlFormatting are marked #[ignore] because ProxyItem::new reaches a todo!() in the php-shim. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21test(dependency-resolver): port RequestTestnsfisis
Both cases pass. AnyConstraint has no PartialEq (foreign crate), so the assertEquals on the requires map is reproduced via Debug-representation comparison. The unused ArrayRepository setup from the original is omitted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>