From d51187794c130ba04de63440f3e962972e259adb Mon Sep 17 00:00:00 2001 From: Tony Lea Date: Tue, 11 Feb 2025 17:14:11 -0500 Subject: [PATCH 1/2] moving to PHPUnit tests --- composer.json | 3 +- composer.lock | 2344 +++++++++-------- phpunit.xml | 4 +- tests/Feature/Auth/AuthenticationTest.php | 67 +- tests/Feature/Auth/EmailVerificationTest.php | 67 +- .../Feature/Auth/PasswordConfirmationTest.php | 52 +- tests/Feature/Auth/PasswordResetTest.php | 87 +- tests/Feature/Auth/RegistrationTest.php | 40 +- tests/Feature/DashboardTest.php | 28 +- tests/Feature/ExampleTest.php | 19 +- tests/Feature/Settings/PasswordUpdateTest.php | 83 +- tests/Feature/Settings/ProfileUpdateTest.php | 178 +- tests/Pest.php | 47 - tests/Unit/ExampleTest.php | 17 +- 14 files changed, 1580 insertions(+), 1456 deletions(-) delete mode 100644 tests/Pest.php diff --git a/composer.json b/composer.json index 4a06ba39..4b1fbbf1 100644 --- a/composer.json +++ b/composer.json @@ -23,8 +23,7 @@ "laravel/sail": "^1.26", "mockery/mockery": "^1.6", "nunomaduro/collision": "^8.1", - "pestphp/pest": "^3.7", - "pestphp/pest-plugin-laravel": "^3.0" + "phpunit/phpunit": "^11.5" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 7657de14..eaacd256 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a9b1177321b36e8e3afd9057b018b138", + "content-hash": "088dbac132a1cecb02bc6d30daff9a9c", "packages": [ { "name": "brick/math", @@ -35,7 +35,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "description": "Arbitrary-precision arithmetic library", "keywords": [ "Arbitrary-precision", @@ -96,7 +98,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "KyleKatarn", @@ -104,7 +108,13 @@ } ], "description": "Types to use Carbon in Doctrine", - "keywords": ["carbon", "date", "datetime", "doctrine", "time"], + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" @@ -161,7 +171,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Dragonfly Development Inc.", @@ -186,7 +198,12 @@ ], "description": "Given a deep data structure, access data by dot notation.", "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": ["access", "data", "dot", "notation"], + "keywords": [ + "access", + "data", + "dot", + "notation" + ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" @@ -225,7 +242,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Guilherme Blanco", @@ -250,7 +269,18 @@ ], "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": ["inflection", "inflector", "lowercase", "manipulation", "php", "plural", "singular", "strings", "uppercase", "words"], + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], "support": { "issues": "https://github.com/doctrine/inflector/issues", "source": "https://github.com/doctrine/inflector/tree/2.0.10" @@ -302,7 +332,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Guilherme Blanco", @@ -319,7 +351,13 @@ ], "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": ["annotations", "docblock", "lexer", "parser", "php"], + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], "support": { "issues": "https://github.com/doctrine/lexer/issues", "source": "https://github.com/doctrine/lexer/tree/3.0.1" @@ -378,7 +416,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Chris Tankersley", @@ -387,7 +427,10 @@ } ], "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": ["cron", "schedule"], + "keywords": [ + "cron", + "schedule" + ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" @@ -438,7 +481,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Eduardo Gulias Davis" @@ -446,7 +491,13 @@ ], "description": "A library for validating emails against several RFCs", "homepage": "https://github.com/egulias/EmailValidator", - "keywords": ["email", "emailvalidation", "emailvalidator", "validation", "validator"], + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" @@ -494,7 +545,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fruitcake", @@ -507,7 +560,11 @@ ], "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", "homepage": "https://github.com/fruitcake/php-cors", - "keywords": ["cors", "laravel", "symfony"], + "keywords": [ + "cors", + "laravel", + "symfony" + ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" @@ -552,7 +609,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Graham Campbell", @@ -561,7 +620,13 @@ } ], "description": "An Implementation Of The Result Type", - "keywords": ["Graham Campbell", "GrahamCampbell", "Result Type", "Result-Type", "result"], + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" @@ -624,13 +689,17 @@ } }, "autoload": { - "files": ["src/functions_include.php"], + "files": [ + "src/functions_include.php" + ], "psr-4": { "GuzzleHttp\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Graham Campbell", @@ -669,7 +738,17 @@ } ], "description": "Guzzle is a PHP HTTP client library", - "keywords": ["client", "curl", "framework", "http", "http client", "psr-18", "psr-7", "rest", "web service"], + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", "source": "https://github.com/guzzle/guzzle/tree/7.9.2" @@ -724,7 +803,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Graham Campbell", @@ -748,7 +829,9 @@ } ], "description": "Guzzle promises library", - "keywords": ["promise"], + "keywords": [ + "promise" + ], "support": { "issues": "https://github.com/guzzle/promises/issues", "source": "https://github.com/guzzle/promises/tree/2.0.4" @@ -814,7 +897,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Graham Campbell", @@ -853,7 +938,16 @@ } ], "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": ["http", "message", "psr-7", "request", "response", "stream", "uri", "url"], + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], "support": { "issues": "https://github.com/guzzle/psr7/issues", "source": "https://github.com/guzzle/psr7/tree/2.7.0" @@ -910,7 +1004,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Graham Campbell", @@ -934,7 +1030,10 @@ } ], "description": "A polyfill class for uri_template of PHP", - "keywords": ["guzzlehttp", "uri-template"], + "keywords": [ + "guzzlehttp", + "uri-template" + ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", "source": "https://github.com/guzzle/uri-template/tree/v1.0.4" @@ -989,17 +1088,23 @@ "type": "library", "extra": { "laravel": { - "providers": ["Inertia\\ServiceProvider"] + "providers": [ + "Inertia\\ServiceProvider" + ] } }, "autoload": { - "files": ["./helpers.php"], + "files": [ + "./helpers.php" + ], "psr-4": { "Inertia\\": "src" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Jonathan Reinink", @@ -1008,7 +1113,10 @@ } ], "description": "The Laravel adapter for Inertia.js.", - "keywords": ["inertia", "laravel"], + "keywords": [ + "inertia", + "laravel" + ], "support": { "issues": "https://github.com/inertiajs/inertia-laravel/issues", "source": "https://github.com/inertiajs/inertia-laravel/tree/v2.0.0" @@ -1207,11 +1315,17 @@ ], "psr-4": { "Illuminate\\": "src/Illuminate/", - "Illuminate\\Support\\": ["src/Illuminate/Macroable/", "src/Illuminate/Collections/", "src/Illuminate/Conditionable/"] + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Taylor Otwell", @@ -1220,7 +1334,10 @@ ], "description": "The Laravel Framework.", "homepage": "https://laravel.com", - "keywords": ["framework", "laravel"], + "keywords": [ + "framework", + "laravel" + ], "support": { "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" @@ -1268,13 +1385,17 @@ } }, "autoload": { - "files": ["src/helpers.php"], + "files": [ + "src/helpers.php" + ], "psr-4": { "Laravel\\Prompts\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", @@ -1318,7 +1439,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Taylor Otwell", @@ -1330,7 +1453,11 @@ } ], "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", - "keywords": ["closure", "laravel", "serializable"], + "keywords": [ + "closure", + "laravel", + "serializable" + ], "support": { "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" @@ -1370,7 +1497,9 @@ "type": "library", "extra": { "laravel": { - "providers": ["Laravel\\Tinker\\TinkerServiceProvider"] + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] } }, "autoload": { @@ -1379,7 +1508,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Taylor Otwell", @@ -1387,7 +1518,12 @@ } ], "description": "Powerful REPL for the Laravel framework.", - "keywords": ["REPL", "Tinker", "laravel", "psysh"], + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], "support": { "issues": "https://github.com/laravel/tinker/issues", "source": "https://github.com/laravel/tinker/tree/v2.10.1" @@ -1451,7 +1587,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Colin O'Dell", @@ -1462,7 +1600,16 @@ ], "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", - "keywords": ["commonmark", "flavored", "gfm", "github", "github-flavored", "markdown", "md", "parser"], + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], "support": { "docs": "https://commonmark.thephpleague.com/", "forum": "https://github.com/thephpleague/commonmark/discussions", @@ -1528,7 +1675,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Colin O'Dell", @@ -1539,7 +1688,15 @@ ], "description": "Define configuration arrays with strict schemas and access values with dot notation", "homepage": "https://config.thephpleague.com", - "keywords": ["array", "config", "configuration", "dot", "dot-access", "nested", "schema"], + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], "support": { "docs": "https://config.thephpleague.com/", "issues": "https://github.com/thephpleague/config/issues", @@ -1616,7 +1773,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Frank de Jonge", @@ -1624,7 +1783,19 @@ } ], "description": "File storage abstraction for PHP", - "keywords": ["WebDAV", "aws", "cloud", "file", "files", "filesystem", "filesystems", "ftp", "s3", "sftp", "storage"], + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", "source": "https://github.com/thephpleague/flysystem/tree/3.29.1" @@ -1658,7 +1829,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Frank de Jonge", @@ -1666,7 +1839,13 @@ } ], "description": "Local filesystem adapter for Flysystem.", - "keywords": ["Flysystem", "file", "files", "filesystem", "local"], + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], "support": { "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0" }, @@ -1702,7 +1881,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Frank de Jonge", @@ -1769,7 +1950,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Ignace Nyamagana Butera", @@ -1853,7 +2036,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Ignace Nyamagana Butera", @@ -1966,7 +2151,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Jordi Boggiano", @@ -1976,7 +2163,11 @@ ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", "homepage": "https://github.com/Seldaek/monolog", - "keywords": ["log", "logging", "psr-3"], + "keywords": [ + "log", + "logging", + "psr-3" + ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", "source": "https://github.com/Seldaek/monolog/tree/3.8.1" @@ -2031,14 +2222,20 @@ "phpunit/phpunit": "^10.5.20", "squizlabs/php_codesniffer": "^3.9.0" }, - "bin": ["bin/carbon"], + "bin": [ + "bin/carbon" + ], "type": "library", "extra": { "laravel": { - "providers": ["Carbon\\Laravel\\ServiceProvider"] + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] }, "phpstan": { - "includes": ["extension.neon"] + "includes": [ + "extension.neon" + ] }, "branch-alias": { "dev-2.x": "2.x-dev", @@ -2051,7 +2248,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Brian Nesbitt", @@ -2065,7 +2264,11 @@ ], "description": "An API extension for DateTime that supports 281 different languages.", "homepage": "https://carbon.nesbot.com", - "keywords": ["date", "datetime", "time"], + "keywords": [ + "date", + "datetime", + "time" + ], "support": { "docs": "https://carbon.nesbot.com/docs", "issues": "https://github.com/briannesbitt/Carbon/issues", @@ -2117,10 +2320,16 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], "authors": [ { "name": "David Grudl", @@ -2133,7 +2342,10 @@ ], "description": "📐 Nette Schema: validating data structures against a given Schema.", "homepage": "https://nette.org", - "keywords": ["config", "nette"], + "keywords": [ + "config", + "nette" + ], "support": { "issues": "https://github.com/nette/schema/issues", "source": "https://github.com/nette/schema/tree/v1.3.2" @@ -2182,10 +2394,16 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], "authors": [ { "name": "David Grudl", @@ -2244,7 +2462,9 @@ "ircmaxell/php-yacc": "^0.0.7", "phpunit/phpunit": "^9.0" }, - "bin": ["bin/php-parse"], + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { @@ -2257,14 +2477,19 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Nikita Popov" } ], "description": "A PHP parser written in PHP", - "keywords": ["parser", "php"], + "keywords": [ + "parser", + "php" + ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" @@ -2303,20 +2528,26 @@ "type": "library", "extra": { "laravel": { - "providers": ["Termwind\\Laravel\\TermwindServiceProvider"] + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] }, "branch-alias": { "dev-2.x": "2.x-dev" } }, "autoload": { - "files": ["src/Functions.php"], + "files": [ + "src/Functions.php" + ], "psr-4": { "Termwind\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nuno Maduro", @@ -2324,7 +2555,14 @@ } ], "description": "Its like Tailwind CSS, but for the console.", - "keywords": ["cli", "console", "css", "package", "php", "style"], + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", "source": "https://github.com/nunomaduro/termwind/tree/v2.3.0" @@ -2382,7 +2620,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["Apache-2.0"], + "license": [ + "Apache-2.0" + ], "authors": [ { "name": "Johannes M. Schmitt", @@ -2396,7 +2636,12 @@ } ], "description": "Option Type for PHP", - "keywords": ["language", "option", "php", "type"], + "keywords": [ + "language", + "option", + "php", + "type" + ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" @@ -2437,7 +2682,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2446,7 +2693,13 @@ ], "description": "Common interface for reading the clock.", "homepage": "https://github.com/php-fig/clock", - "keywords": ["clock", "now", "psr", "psr-20", "time"], + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], "support": { "issues": "https://github.com/php-fig/clock/issues", "source": "https://github.com/php-fig/clock/tree/1.0.0" @@ -2482,7 +2735,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2491,7 +2746,13 @@ ], "description": "Common Container Interface (PHP FIG PSR-11)", "homepage": "https://github.com/php-fig/container", - "keywords": ["PSR-11", "container", "container-interface", "container-interop", "psr"], + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], "support": { "issues": "https://github.com/php-fig/container/issues", "source": "https://github.com/php-fig/container/tree/2.0.2" @@ -2527,7 +2788,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2535,7 +2798,11 @@ } ], "description": "Standard interfaces for event handling.", - "keywords": ["events", "psr", "psr-14"], + "keywords": [ + "events", + "psr", + "psr-14" + ], "support": { "issues": "https://github.com/php-fig/event-dispatcher/issues", "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" @@ -2572,7 +2839,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2581,7 +2850,12 @@ ], "description": "Common interface for HTTP clients", "homepage": "https://github.com/php-fig/http-client", - "keywords": ["http", "http-client", "psr", "psr-18"], + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], "support": { "source": "https://github.com/php-fig/http-client" }, @@ -2617,7 +2891,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2625,7 +2901,16 @@ } ], "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", - "keywords": ["factory", "http", "message", "psr", "psr-17", "psr-7", "request", "response"], + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], "support": { "source": "https://github.com/php-fig/http-factory" }, @@ -2660,7 +2945,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2669,7 +2956,14 @@ ], "description": "Common interface for HTTP messages", "homepage": "https://github.com/php-fig/http-message", - "keywords": ["http", "http-message", "psr", "psr-7", "request", "response"], + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], "support": { "source": "https://github.com/php-fig/http-message/tree/2.0" }, @@ -2704,7 +2998,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2713,7 +3009,11 @@ ], "description": "Common interface for logging libraries", "homepage": "https://github.com/php-fig/log", - "keywords": ["log", "psr", "psr-3"], + "keywords": [ + "log", + "psr", + "psr-3" + ], "support": { "source": "https://github.com/php-fig/log/tree/3.0.2" }, @@ -2748,7 +3048,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "PHP-FIG", @@ -2756,7 +3058,13 @@ } ], "description": "Common interfaces for simple caching", - "keywords": ["cache", "caching", "psr", "psr-16", "simple-cache"], + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], "support": { "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" }, @@ -2795,7 +3103,9 @@ "ext-pdo-sqlite": "The doc command requires SQLite to work.", "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, - "bin": ["bin/psysh"], + "bin": [ + "bin/psysh" + ], "type": "library", "extra": { "bamarni-bin": { @@ -2807,13 +3117,17 @@ } }, "autoload": { - "files": ["src/functions.php"], + "files": [ + "src/functions.php" + ], "psr-4": { "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Justin Hileman", @@ -2823,7 +3137,12 @@ ], "description": "An interactive shell for modern PHP.", "homepage": "http://psysh.org", - "keywords": ["REPL", "console", "interactive", "shell"], + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" @@ -2853,10 +3172,14 @@ }, "type": "library", "autoload": { - "files": ["src/getallheaders.php"] + "files": [ + "src/getallheaders.php" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Ralph Khattar", @@ -2924,7 +3247,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Ben Ramsey", @@ -2933,7 +3258,14 @@ } ], "description": "A PHP library for representing and manipulating collections.", - "keywords": ["array", "collection", "hash", "map", "queue", "set"], + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], "support": { "issues": "https://github.com/ramsey/collection/issues", "source": "https://github.com/ramsey/collection/tree/2.0.0" @@ -3009,15 +3341,23 @@ } }, "autoload": { - "files": ["src/functions.php"], + "files": [ + "src/functions.php" + ], "psr-4": { "Ramsey\\Uuid\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", - "keywords": ["guid", "identifier", "uuid"], + "keywords": [ + "guid", + "identifier", + "uuid" + ], "support": { "issues": "https://github.com/ramsey/uuid/issues", "source": "https://github.com/ramsey/uuid/tree/4.7.6" @@ -3058,14 +3398,20 @@ }, "type": "library", "autoload": { - "files": ["Resources/now.php"], + "files": [ + "Resources/now.php" + ], "psr-4": { "Symfony\\Component\\Clock\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -3078,7 +3424,11 @@ ], "description": "Decouples applications from the system clock", "homepage": "https://symfony.com", - "keywords": ["clock", "psr20", "time"], + "keywords": [ + "clock", + "psr20", + "time" + ], "support": { "source": "https://github.com/symfony/clock/tree/v7.2.0" }, @@ -3146,10 +3496,14 @@ "psr-4": { "Symfony\\Component\\Console\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3162,7 +3516,12 @@ ], "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "keywords": ["cli", "command-line", "console", "terminal"], + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], "support": { "source": "https://github.com/symfony/console/tree/v7.2.1" }, @@ -3204,10 +3563,14 @@ "psr-4": { "Symfony\\Component\\CssSelector\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3271,10 +3634,14 @@ } }, "autoload": { - "files": ["function.php"] + "files": [ + "function.php" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -3334,16 +3701,22 @@ "symfony/http-kernel": "^6.4|^7.0", "symfony/serializer": "^6.4|^7.0" }, - "bin": ["Resources/bin/patch-type-declarations"], + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3416,10 +3789,14 @@ "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3485,7 +3862,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -3498,7 +3877,14 @@ ], "description": "Generic abstractions related to dispatching event", "homepage": "https://symfony.com", - "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, @@ -3543,10 +3929,14 @@ "psr-4": { "Symfony\\Component\\Finder\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3617,10 +4007,14 @@ "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3727,10 +4121,14 @@ "psr-4": { "Symfony\\Component\\HttpKernel\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3803,10 +4201,14 @@ "psr-4": { "Symfony\\Component\\Mailer\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3879,10 +4281,14 @@ "psr-4": { "Symfony\\Component\\Mime\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -3895,7 +4301,10 @@ ], "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", - "keywords": ["mime", "mime-type"], + "keywords": [ + "mime", + "mime-type" + ], "support": { "source": "https://github.com/symfony/mime/tree/v7.2.3" }, @@ -3946,13 +4355,17 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Gert de Pagter", @@ -3965,7 +4378,12 @@ ], "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "ctype", "polyfill", "portable"], + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], "support": { "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, @@ -4013,13 +4431,17 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Intl\\Grapheme\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4032,7 +4454,14 @@ ], "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "grapheme", "intl", "polyfill", "portable", "shim"], + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], "support": { "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, @@ -4081,13 +4510,17 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Laurent Bassin", @@ -4104,7 +4537,14 @@ ], "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "idn", "intl", "polyfill", "portable", "shim"], + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], "support": { "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" }, @@ -4152,14 +4592,20 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, - "classmap": ["Resources/stubs"] + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4172,7 +4618,14 @@ ], "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "intl", "normalizer", "polyfill", "portable", "shim"], + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], "support": { "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, @@ -4223,13 +4676,17 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4242,7 +4699,13 @@ ], "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", - "keywords": ["compatibility", "mbstring", "polyfill", "portable", "shim"], + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], "support": { "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, @@ -4287,14 +4750,20 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, - "classmap": ["Resources/stubs"] + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Ion Bazan", @@ -4311,7 +4780,12 @@ ], "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "polyfill", "portable", "shim"], + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, @@ -4356,14 +4830,20 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Php83\\": "" }, - "classmap": ["Resources/stubs"] + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4376,7 +4856,12 @@ ], "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "polyfill", "portable", "shim"], + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" }, @@ -4427,13 +4912,17 @@ } }, "autoload": { - "files": ["bootstrap.php"], + "files": [ + "bootstrap.php" + ], "psr-4": { "Symfony\\Polyfill\\Uuid\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Grégoire Pineau", @@ -4446,7 +4935,12 @@ ], "description": "Symfony polyfill for uuid functions", "homepage": "https://symfony.com", - "keywords": ["compatibility", "polyfill", "portable", "uuid"], + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], "support": { "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" }, @@ -4488,10 +4982,14 @@ "psr-4": { "Symfony\\Component\\Process\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -4559,10 +5057,14 @@ "psr-4": { "Symfony\\Component\\Routing\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -4575,7 +5077,12 @@ ], "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", - "keywords": ["router", "routing", "uri", "url"], + "keywords": [ + "router", + "routing", + "uri", + "url" + ], "support": { "source": "https://github.com/symfony/routing/tree/v7.2.3" }, @@ -4631,10 +5138,14 @@ "psr-4": { "Symfony\\Contracts\\Service\\": "" }, - "exclude-from-classmap": ["/Test/"] + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4647,7 +5158,14 @@ ], "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", - "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, @@ -4701,14 +5219,20 @@ }, "type": "library", "autoload": { - "files": ["Resources/functions.php"], + "files": [ + "Resources/functions.php" + ], "psr-4": { "Symfony\\Component\\String\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4721,7 +5245,14 @@ ], "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", - "keywords": ["grapheme", "i18n", "string", "unicode", "utf-8", "utf8"], + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], "support": { "source": "https://github.com/symfony/string/tree/v7.2.0" }, @@ -4791,14 +5322,20 @@ }, "type": "library", "autoload": { - "files": ["Resources/functions.php"], + "files": [ + "Resources/functions.php" + ], "psr-4": { "Symfony\\Component\\Translation\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -4861,10 +5398,14 @@ "psr-4": { "Symfony\\Contracts\\Translation\\": "" }, - "exclude-from-classmap": ["/Test/"] + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -4877,7 +5418,14 @@ ], "description": "Generic abstractions related to translation", "homepage": "https://symfony.com", - "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" }, @@ -4923,10 +5471,14 @@ "psr-4": { "Symfony\\Component\\Uid\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Grégoire Pineau", @@ -4943,7 +5495,11 @@ ], "description": "Provides an object-oriented API to generate and represent UIDs", "homepage": "https://symfony.com", - "keywords": ["UID", "ulid", "uuid"], + "keywords": [ + "UID", + "ulid", + "uuid" + ], "support": { "source": "https://github.com/symfony/uid/tree/v7.2.0" }, @@ -4992,17 +5548,25 @@ "symfony/uid": "^6.4|^7.0", "twig/twig": "^3.12" }, - "bin": ["Resources/bin/var-dump-server"], + "bin": [ + "Resources/bin/var-dump-server" + ], "type": "library", "autoload": { - "files": ["Resources/functions/dump.php"], + "files": [ + "Resources/functions/dump.php" + ], "psr-4": { "Symfony\\Component\\VarDumper\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nicolas Grekas", @@ -5015,7 +5579,10 @@ ], "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", - "keywords": ["debug", "dump"], + "keywords": [ + "debug", + "dump" + ], "support": { "source": "https://github.com/symfony/var-dumper/tree/v7.2.3" }, @@ -5063,7 +5630,9 @@ "type": "library", "extra": { "laravel": { - "providers": ["Tighten\\Ziggy\\ZiggyServiceProvider"] + "providers": [ + "Tighten\\Ziggy\\ZiggyServiceProvider" + ] } }, "autoload": { @@ -5072,7 +5641,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Daniel Coulbourne", @@ -5089,8 +5660,13 @@ ], "description": "Use your Laravel named routes in JavaScript.", "homepage": "https://github.com/tighten/ziggy", - "keywords": ["Ziggy", "javascript", "laravel", "routes"], - "support": { + "keywords": [ + "Ziggy", + "javascript", + "laravel", + "routes" + ], + "support": { "issues": "https://github.com/tighten/ziggy/issues", "source": "https://github.com/tighten/ziggy/tree/v2.5.1" }, @@ -5133,7 +5709,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Tijs Verkoyen", @@ -5196,7 +5774,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Graham Campbell", @@ -5210,7 +5790,11 @@ } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": ["dotenv", "env", "environment"], + "keywords": [ + "dotenv", + "env", + "environment" + ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" @@ -5257,7 +5841,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Lars Moelleken", @@ -5266,7 +5852,11 @@ ], "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", "homepage": "https://github.com/voku/portable-ascii", - "keywords": ["ascii", "clean", "php"], + "keywords": [ + "ascii", + "clean", + "php" + ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", "source": "https://github.com/voku/portable-ascii/tree/2.0.3" @@ -5332,7 +5922,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Bernhard Schussek", @@ -5340,7 +5932,11 @@ } ], "description": "Assertions to validate method input/output with nice error messages.", - "keywords": ["assert", "check", "validate"], + "keywords": [ + "assert", + "check", + "validate" + ], "support": { "issues": "https://github.com/webmozarts/assert/issues", "source": "https://github.com/webmozarts/assert/tree/1.11.0" @@ -5349,130 +5945,6 @@ } ], "packages-dev": [ - { - "name": "brianium/paratest", - "version": "v7.7.0", - "source": { - "type": "git", - "url": "https://github.com/paratestphp/paratest.git", - "reference": "4fb3f73bc5a4c3146bac2850af7dc72435a32daf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/4fb3f73bc5a4c3146bac2850af7dc72435a32daf", - "reference": "4fb3f73bc5a4c3146bac2850af7dc72435a32daf", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.2.0", - "jean85/pretty-package-versions": "^2.1.0", - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", - "phpunit/php-code-coverage": "^11.0.8", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-timer": "^7.0.1", - "phpunit/phpunit": "^11.5.1", - "sebastian/environment": "^7.2.0", - "symfony/console": "^6.4.14 || ^7.2.1", - "symfony/process": "^6.4.14 || ^7.2.0" - }, - "require-dev": { - "doctrine/coding-standard": "^12.0.0", - "ext-pcov": "*", - "ext-posix": "*", - "phpstan/phpstan": "^2.0.3", - "phpstan/phpstan-deprecation-rules": "^2.0.1", - "phpstan/phpstan-phpunit": "^2.0.1", - "phpstan/phpstan-strict-rules": "^2", - "squizlabs/php_codesniffer": "^3.11.1", - "symfony/filesystem": "^6.4.13 || ^7.2.0" - }, - "bin": ["bin/paratest", "bin/paratest_for_phpstorm"], - "type": "library", - "autoload": { - "psr-4": { - "ParaTest\\": ["src/"] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Brian Scaturro", - "email": "scaturrob@gmail.com", - "role": "Developer" - }, - { - "name": "Filippo Tessarotto", - "email": "zoeslam@gmail.com", - "role": "Developer" - } - ], - "description": "Parallel testing for PHP", - "homepage": "https://github.com/paratestphp/paratest", - "keywords": ["concurrent", "parallel", "phpunit", "testing"], - "support": { - "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.7.0" - }, - "funding": [ - { - "url": "https://github.com/sponsors/Slamdunk", - "type": "github" - }, - { - "url": "https://paypal.me/filippotessarotto", - "type": "paypal" - } - ], - "time": "2024-12-11T14:50:44+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "1.4.10 || 2.0.3", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.4" - }, - "time": "2024-12-07T21:18:45+00:00" - }, { "name": "fakerphp/faker", "version": "v1.24.1", @@ -5516,76 +5988,26 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "François Zaninotto" } ], "description": "Faker is a PHP library that generates fake data for you.", - "keywords": ["data", "faker", "fixtures"], + "keywords": [ + "data", + "faker", + "fixtures" + ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" }, "time": "2024-11-21T13:46:39+00:00" }, - { - "name": "fidry/cpu-core-counter", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "8520451a140d3f46ac33042715115e290cf5785f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", - "reference": "8520451a140d3f46ac33042715115e290cf5785f", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "fidry/makefile": "^0.2.0", - "fidry/php-cs-fixer-config": "^1.1.2", - "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^1.9.2", - "phpstan/phpstan-deprecation-rules": "^1.0.0", - "phpstan/phpstan-phpunit": "^1.2.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^8.5.31 || ^9.5.26", - "webmozarts/strict-phpunit": "^7.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Fidry\\CpuCoreCounter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Tiny utility to get the number of CPU cores.", - "keywords": ["CPU", "core"], - "support": { - "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" - }, - "funding": [ - { - "url": "https://github.com/theofidry", - "type": "github" - } - ], - "time": "2024-08-06T10:04:20+00:00" - }, { "name": "filp/whoops", "version": "2.17.0", @@ -5625,7 +6047,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Filipe Dobreira", @@ -5635,7 +6059,14 @@ ], "description": "php error handling for cool kids", "homepage": "https://filp.github.io/whoops/", - "keywords": ["error", "exception", "handling", "library", "throwable", "whoops"], + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], "support": { "issues": "https://github.com/filp/whoops/issues", "source": "https://github.com/filp/whoops/tree/2.17.0" @@ -5681,70 +6112,24 @@ } }, "autoload": { - "classmap": ["hamcrest"] + "classmap": [ + "hamcrest" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "description": "This is the PHP port of Hamcrest Matchers", - "keywords": ["test"], + "keywords": [ + "test" + ], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" }, "time": "2020-07-09T08:09:16+00:00" }, - { - "name": "jean85/pretty-package-versions", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", - "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2.1.0", - "php": "^7.4|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.2", - "jean85/composer-provided-replaced-stub-package": "^1.0", - "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^7.5|^8.5|^9.6", - "vimeo/psalm": "^4.3 || ^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Jean85\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Alessandro Lai", - "email": "alessandro.lai85@gmail.com" - } - ], - "description": "A library to get pretty versions strings of installed dependencies", - "keywords": ["composer", "package", "release", "versions"], - "support": { - "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0" - }, - "time": "2024-11-18T16:19:46+00:00" - }, { "name": "larastan/larastan", "version": "v3.0.4", @@ -5788,7 +6173,9 @@ "type": "phpstan-extension", "extra": { "phpstan": { - "includes": ["extension.neon"] + "includes": [ + "extension.neon" + ] }, "branch-alias": { "dev-master": "2.0-dev" @@ -5800,7 +6187,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Can Vural", @@ -5812,7 +6201,16 @@ } ], "description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan wrapper for Laravel", - "keywords": ["PHPStan", "code analyse", "code analysis", "larastan", "laravel", "package", "php", "static analysis"], + "keywords": [ + "PHPStan", + "code analyse", + "code analysis", + "larastan", + "laravel", + "package", + "php", + "static analysis" + ], "support": { "issues": "https://github.com/larastan/larastan/issues", "source": "https://github.com/larastan/larastan/tree/v3.0.4" @@ -5862,7 +6260,9 @@ "type": "library", "extra": { "laravel": { - "providers": ["Laravel\\Pail\\PailServiceProvider"] + "providers": [ + "Laravel\\Pail\\PailServiceProvider" + ] }, "branch-alias": { "dev-main": "1.x-dev" @@ -5874,7 +6274,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Taylor Otwell", @@ -5887,7 +6289,12 @@ ], "description": "Easily delve into your Laravel application's log files directly from the command line.", "homepage": "https://github.com/laravel/pail", - "keywords": ["laravel", "logs", "php", "tail"], + "keywords": [ + "laravel", + "logs", + "php", + "tail" + ], "support": { "issues": "https://github.com/laravel/pail/issues", "source": "https://github.com/laravel/pail" @@ -5924,7 +6331,9 @@ "nunomaduro/termwind": "^1.17.0", "pestphp/pest": "^2.36.0" }, - "bin": ["builds/pint"], + "bin": [ + "builds/pint" + ], "type": "project", "autoload": { "psr-4": { @@ -5934,7 +6343,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Nuno Maduro", @@ -5943,7 +6354,13 @@ ], "description": "An opinionated code formatter for PHP.", "homepage": "https://laravel.com", - "keywords": ["format", "formatter", "lint", "linter", "php"], + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], "support": { "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" @@ -5976,11 +6393,15 @@ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", "phpstan/phpstan": "^1.10" }, - "bin": ["bin/sail"], + "bin": [ + "bin/sail" + ], "type": "library", "extra": { "laravel": { - "providers": ["Laravel\\Sail\\SailServiceProvider"] + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] } }, "autoload": { @@ -5989,7 +6410,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Taylor Otwell", @@ -5997,7 +6420,10 @@ } ], "description": "Docker files for running a basic Laravel application.", - "keywords": ["docker", "laravel"], + "keywords": [ + "docker", + "laravel" + ], "support": { "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" @@ -6032,13 +6458,18 @@ }, "type": "library", "autoload": { - "files": ["library/helpers.php", "library/Mockery.php"], + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], "psr-4": { "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Pádraic Brady", @@ -6061,7 +6492,18 @@ ], "description": "Mockery is a simple yet flexible PHP mock object framework", "homepage": "https://github.com/mockery/mockery", - "keywords": ["BDD", "TDD", "library", "mock", "mock objects", "mockery", "stub", "test", "test double", "testing"], + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], "support": { "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", @@ -6100,15 +6542,25 @@ }, "type": "library", "autoload": { - "files": ["src/DeepCopy/deep_copy.php"], + "files": [ + "src/DeepCopy/deep_copy.php" + ], "psr-4": { "DeepCopy\\": "src/DeepCopy/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "description": "Create deep copies (clones) of your objects", - "keywords": ["clone", "copy", "duplicate", "object", "object graph"], + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" @@ -6141,376 +6593,67 @@ "php": "^8.2.0", "symfony/console": "^7.2.1" }, - "conflict": { - "laravel/framework": "<11.39.1 || >=13.0.0", - "phpunit/phpunit": "<11.5.3 || >=12.0.0" - }, - "require-dev": { - "larastan/larastan": "^2.9.12", - "laravel/framework": "^11.39.1", - "laravel/pint": "^1.20.0", - "laravel/sail": "^1.40.0", - "laravel/sanctum": "^4.0.7", - "laravel/tinker": "^2.10.0", - "orchestra/testbench-core": "^9.9.2", - "pestphp/pest": "^3.7.3", - "sebastian/environment": "^6.1.0 || ^7.2.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": ["NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"] - }, - "branch-alias": { - "dev-8.x": "8.x-dev" - } - }, - "autoload": { - "files": ["./src/Adapters/Phpunit/Autoload.php"], - "psr-4": { - "NunoMaduro\\Collision\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Cli error handling for console/command-line PHP applications.", - "keywords": ["artisan", "cli", "command-line", "console", "dev", "error", "handling", "laravel", "laravel-zero", "php", "symfony"], - "support": { - "issues": "https://github.com/nunomaduro/collision/issues", - "source": "https://github.com/nunomaduro/collision" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2025-01-23T13:41:43+00:00" - }, - { - "name": "pestphp/pest", - "version": "v3.7.4", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest.git", - "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b", - "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b", - "shasum": "" - }, - "require": { - "brianium/paratest": "^7.7.0", - "nunomaduro/collision": "^8.6.1", - "nunomaduro/termwind": "^2.3.0", - "pestphp/pest-plugin": "^3.0.0", - "pestphp/pest-plugin-arch": "^3.0.0", - "pestphp/pest-plugin-mutate": "^3.0.5", - "php": "^8.2.0", - "phpunit/phpunit": "^11.5.3" - }, - "conflict": { - "filp/whoops": "<2.16.0", - "phpunit/phpunit": ">11.5.3", - "sebastian/exporter": "<6.0.0", - "webmozart/assert": "<1.11.0" - }, - "require-dev": { - "pestphp/pest-dev-tools": "^3.3.0", - "pestphp/pest-plugin-type-coverage": "^3.2.3", - "symfony/process": "^7.2.0" - }, - "bin": ["bin/pest"], - "type": "library", - "extra": { - "pest": { - "plugins": [ - "Pest\\Mutate\\Plugins\\Mutate", - "Pest\\Plugins\\Configuration", - "Pest\\Plugins\\Bail", - "Pest\\Plugins\\Cache", - "Pest\\Plugins\\Coverage", - "Pest\\Plugins\\Init", - "Pest\\Plugins\\Environment", - "Pest\\Plugins\\Help", - "Pest\\Plugins\\Memory", - "Pest\\Plugins\\Only", - "Pest\\Plugins\\Printer", - "Pest\\Plugins\\ProcessIsolation", - "Pest\\Plugins\\Profile", - "Pest\\Plugins\\Retry", - "Pest\\Plugins\\Snapshot", - "Pest\\Plugins\\Verbose", - "Pest\\Plugins\\Version", - "Pest\\Plugins\\Parallel" - ] - }, - "phpstan": { - "includes": ["extension.neon"] - } - }, - "autoload": { - "files": ["src/Functions.php", "src/Pest.php"], - "psr-4": { - "Pest\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "The elegant PHP Testing Framework.", - "keywords": ["framework", "pest", "php", "test", "testing", "unit"], - "support": { - "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v3.7.4" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - } - ], - "time": "2025-01-23T14:03:29+00:00" - }, - { - "name": "pestphp/pest-plugin", - "version": "v3.0.0", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin.git", - "reference": "e79b26c65bc11c41093b10150c1341cc5cdbea83" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e79b26c65bc11c41093b10150c1341cc5cdbea83", - "reference": "e79b26c65bc11c41093b10150c1341cc5cdbea83", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.0.0", - "composer-runtime-api": "^2.2.2", - "php": "^8.2" - }, - "conflict": { - "pestphp/pest": "<3.0.0" - }, - "require-dev": { - "composer/composer": "^2.7.9", - "pestphp/pest": "^3.0.0", - "pestphp/pest-dev-tools": "^3.0.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Pest\\Plugin\\Manager" - }, - "autoload": { - "psr-4": { - "Pest\\Plugin\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "description": "The Pest plugin manager", - "keywords": ["framework", "manager", "pest", "php", "plugin", "test", "testing", "unit"], - "support": { - "source": "https://github.com/pestphp/pest-plugin/tree/v3.0.0" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2024-09-08T23:21:41+00:00" - }, - { - "name": "pestphp/pest-plugin-arch", - "version": "v3.0.0", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin-arch.git", - "reference": "0a27e55a270cfe73d8cb70551b91002ee2cb64b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/0a27e55a270cfe73d8cb70551b91002ee2cb64b0", - "reference": "0a27e55a270cfe73d8cb70551b91002ee2cb64b0", - "shasum": "" - }, - "require": { - "pestphp/pest-plugin": "^3.0.0", - "php": "^8.2", - "ta-tikoma/phpunit-architecture-test": "^0.8.4" - }, - "require-dev": { - "pestphp/pest": "^3.0.0", - "pestphp/pest-dev-tools": "^3.0.0" - }, - "type": "library", - "extra": { - "pest": { - "plugins": ["Pest\\Arch\\Plugin"] - } - }, - "autoload": { - "files": ["src/Autoload.php"], - "psr-4": { - "Pest\\Arch\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "description": "The Arch plugin for Pest PHP.", - "keywords": ["arch", "architecture", "framework", "pest", "php", "plugin", "test", "testing", "unit"], - "support": { - "source": "https://github.com/pestphp/pest-plugin-arch/tree/v3.0.0" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - } - ], - "time": "2024-09-08T23:23:55+00:00" - }, - { - "name": "pestphp/pest-plugin-laravel", - "version": "v3.1.0", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin-laravel.git", - "reference": "1c4e994476375c72aa7aebaaa97aa98f5d5378cd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/1c4e994476375c72aa7aebaaa97aa98f5d5378cd", - "reference": "1c4e994476375c72aa7aebaaa97aa98f5d5378cd", - "shasum": "" - }, - "require": { - "laravel/framework": "^11.39.1|^12.0.0", - "pestphp/pest": "^3.7.4", - "php": "^8.2.0" - }, - "require-dev": { - "laravel/dusk": "^8.2.13|dev-develop", - "orchestra/testbench": "^9.9.0|^10.0.0", - "pestphp/pest-dev-tools": "^3.3.0" - }, - "type": "library", - "extra": { - "pest": { - "plugins": ["Pest\\Laravel\\Plugin"] - }, - "laravel": { - "providers": ["Pest\\Laravel\\PestServiceProvider"] - } - }, - "autoload": { - "files": ["src/Autoload.php"], - "psr-4": { - "Pest\\Laravel\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "description": "The Pest Laravel Plugin", - "keywords": ["framework", "laravel", "pest", "php", "test", "testing", "unit"], - "support": { - "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.1.0" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - } - ], - "time": "2025-01-24T13:22:39+00:00" - }, - { - "name": "pestphp/pest-plugin-mutate", - "version": "v3.0.5", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin-mutate.git", - "reference": "e10dbdc98c9e2f3890095b4fe2144f63a5717e08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-mutate/zipball/e10dbdc98c9e2f3890095b4fe2144f63a5717e08", - "reference": "e10dbdc98c9e2f3890095b4fe2144f63a5717e08", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^5.2.0", - "pestphp/pest-plugin": "^3.0.0", - "php": "^8.2", - "psr/simple-cache": "^3.0.0" + "conflict": { + "laravel/framework": "<11.39.1 || >=13.0.0", + "phpunit/phpunit": "<11.5.3 || >=12.0.0" }, "require-dev": { - "pestphp/pest": "^3.0.8", - "pestphp/pest-dev-tools": "^3.0.0", - "pestphp/pest-plugin-type-coverage": "^3.0.0" + "larastan/larastan": "^2.9.12", + "laravel/framework": "^11.39.1", + "laravel/pint": "^1.20.0", + "laravel/sail": "^1.40.0", + "laravel/sanctum": "^4.0.7", + "laravel/tinker": "^2.10.0", + "orchestra/testbench-core": "^9.9.2", + "pestphp/pest": "^3.7.3", + "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + }, + "branch-alias": { + "dev-8.x": "8.x-dev" + } + }, "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], "psr-4": { - "Pest\\Mutate\\": "src/" + "NunoMaduro\\Collision\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { - "name": "Sandro Gehri", - "email": "sandrogehri@gmail.com" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Mutates your code to find untested cases", - "keywords": ["framework", "mutate", "mutation", "pest", "php", "plugin", "test", "testing", "unit"], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "dev", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], "support": { - "source": "https://github.com/pestphp/pest-plugin-mutate/tree/v3.0.5" + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" }, "funding": [ { @@ -6518,15 +6661,15 @@ "type": "custom" }, { - "url": "https://github.com/gehrisandro", + "url": "https://github.com/nunomaduro", "type": "github" }, { - "url": "https://github.com/nunomaduro", - "type": "github" + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" } ], - "time": "2024-09-22T07:54:40+00:00" + "time": "2025-01-23T13:41:43+00:00" }, { "name": "phar-io/manifest", @@ -6557,10 +6700,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Arne Blankerts", @@ -6610,10 +6757,14 @@ }, "type": "library", "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Arne Blankerts", @@ -6638,169 +6789,6 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": ["FQSEN", "phpDocumentor", "phpdoc", "reflection", "static analysis"], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.6.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", - "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.1", - "ext-filter": "*", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.5 || ~1.6.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-webmozart-assert": "^1.2", - "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" - }, - "time": "2024-12-07T09:39:29+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" - }, - "time": "2024-11-09T15:12:26+00:00" - }, { "name": "phpmyadmin/sql-parser", "version": "5.10.3", @@ -6839,7 +6827,12 @@ "ext-mbstring": "For best performance", "phpmyadmin/motranslator": "Translate messages to your favorite locale" }, - "bin": ["bin/highlight-query", "bin/lint-query", "bin/sql-parser", "bin/tokenize-query"], + "bin": [ + "bin/highlight-query", + "bin/lint-query", + "bin/sql-parser", + "bin/tokenize-query" + ], "type": "library", "autoload": { "psr-4": { @@ -6847,7 +6840,9 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": ["GPL-2.0-or-later"], + "license": [ + "GPL-2.0-or-later" + ], "authors": [ { "name": "The phpMyAdmin Team", @@ -6881,49 +6876,6 @@ ], "time": "2025-01-19T04:14:02+00:00" }, - { - "name": "phpstan/phpdoc-parser", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", - "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^5.3.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": ["src/"] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" - }, - "time": "2024-10-13T11:29:49+00:00" - }, { "name": "phpstan/phpstan", "version": "2.1.4", @@ -6944,15 +6896,25 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "bin": ["phpstan", "phpstan.phar"], + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", "autoload": { - "files": ["bootstrap.php"] + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "description": "PHPStan - PHP Static Analysis Tool", - "keywords": ["dev", "static analysis"], + "keywords": [ + "dev", + "static analysis" + ], "support": { "docs": "https://phpstan.org/user-guide/getting-started", "forum": "https://github.com/phpstan/phpstan/discussions", @@ -7015,10 +6977,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7028,7 +6994,11 @@ ], "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": ["coverage", "testing", "xunit"], + "keywords": [ + "coverage", + "testing", + "xunit" + ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", @@ -7069,10 +7039,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7082,7 +7056,10 @@ ], "description": "FilterIterator implementation that filters files based on a list of suffixes.", "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": ["filesystem", "iterator"], + "keywords": [ + "filesystem", + "iterator" + ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", @@ -7127,10 +7104,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7140,7 +7121,9 @@ ], "description": "Invoke callables with a timeout", "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": ["process"], + "keywords": [ + "process" + ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", @@ -7181,10 +7164,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7194,7 +7181,9 @@ ], "description": "Simple template engine.", "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": ["template"], + "keywords": [ + "template" + ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", @@ -7235,10 +7224,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7248,7 +7241,9 @@ ], "description": "Utility class for timing", "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": ["timer"], + "keywords": [ + "timer" + ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", @@ -7264,16 +7259,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.3", + "version": "11.5.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "30e319e578a7b5da3543073e30002bf82042f701" + "reference": "e1cb706f019e2547039ca2c839898cd5f557ee5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/30e319e578a7b5da3543073e30002bf82042f701", - "reference": "30e319e578a7b5da3543073e30002bf82042f701", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e1cb706f019e2547039ca2c839898cd5f557ee5d", + "reference": "e1cb706f019e2547039ca2c839898cd5f557ee5d", "shasum": "" }, "require": { @@ -7307,7 +7302,9 @@ "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" }, - "bin": ["phpunit"], + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { @@ -7315,11 +7312,17 @@ } }, "autoload": { - "files": ["src/Framework/Assert/Functions.php"], - "classmap": ["src/"] + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7329,11 +7332,15 @@ ], "description": "The PHP Unit Testing framework.", "homepage": "https://phpunit.de/", - "keywords": ["phpunit", "testing", "xunit"], + "keywords": [ + "phpunit", + "testing", + "xunit" + ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.3" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.7" }, "funding": [ { @@ -7349,7 +7356,7 @@ "type": "tidelift" } ], - "time": "2025-01-13T09:36:00+00:00" + "time": "2025-02-06T16:10:05+00:00" }, { "name": "sebastian/cli-parser", @@ -7378,10 +7385,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7431,10 +7442,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7484,10 +7499,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7543,10 +7562,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7567,7 +7590,11 @@ ], "description": "Provides the functionality to compare PHP values for equality", "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": ["comparator", "compare", "equality"], + "keywords": [ + "comparator", + "compare", + "equality" + ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", @@ -7609,10 +7636,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7663,10 +7694,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7679,7 +7714,12 @@ ], "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": ["diff", "udiff", "unidiff", "unified diff"], + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", @@ -7723,10 +7763,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7735,7 +7779,11 @@ ], "description": "Provides functionality to handle HHVM/PHP environments", "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": ["Xdebug", "environment", "hhvm"], + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", @@ -7778,10 +7826,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7806,7 +7858,10 @@ ], "description": "Provides the functionality to export PHP variables for visualization", "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": ["export", "exporter"], + "keywords": [ + "export", + "exporter" + ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", @@ -7850,10 +7905,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7862,7 +7921,9 @@ ], "description": "Snapshotting of global state", "homepage": "https://www.github.com/sebastianbergmann/global-state", - "keywords": ["global state"], + "keywords": [ + "global state" + ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", @@ -7904,10 +7965,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -7959,10 +8024,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -8011,10 +8080,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -8063,10 +8136,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -8123,10 +8200,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -8173,10 +8254,14 @@ } }, "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Sebastian Bergmann", @@ -8227,12 +8312,18 @@ }, "type": "library", "autoload": { - "classmap": ["lib/"] + "classmap": [ + "lib/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "description": "A static analysis tool to detect side effects in PHP code", - "keywords": ["static analysis"], + "keywords": [ + "static analysis" + ], "support": { "issues": "https://github.com/staabm/side-effects-detector/issues", "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" @@ -8270,16 +8361,22 @@ "require-dev": { "symfony/console": "^6.4|^7.0" }, - "bin": ["Resources/bin/yaml-lint"], + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" }, - "exclude-from-classmap": ["/Tests/"] + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], + "license": [ + "MIT" + ], "authors": [ { "name": "Fabien Potencier", @@ -8311,57 +8408,6 @@ ], "time": "2025-01-07T12:55:42+00:00" }, - { - "name": "ta-tikoma/phpunit-architecture-test", - "version": "0.8.4", - "source": { - "type": "git", - "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", - "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636", - "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18.0 || ^5.0.0", - "php": "^8.1.0", - "phpdocumentor/reflection-docblock": "^5.3.0", - "phpunit/phpunit": "^10.5.5 || ^11.0.0", - "symfony/finder": "^6.4.0 || ^7.0.0" - }, - "require-dev": { - "laravel/pint": "^1.13.7", - "phpstan/phpstan": "^1.10.52" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPUnit\\Architecture\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": ["MIT"], - "authors": [ - { - "name": "Ni Shi", - "email": "futik0ma011@gmail.com" - }, - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Methods for testing application architecture", - "keywords": ["architecture", "phpunit", "stucture", "test", "testing"], - "support": { - "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", - "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4" - }, - "time": "2024-01-05T14:10:56+00:00" - }, { "name": "theseer/tokenizer", "version": "1.2.3", @@ -8384,10 +8430,14 @@ }, "type": "library", "autoload": { - "classmap": ["src/"] + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", - "license": ["BSD-3-Clause"], + "license": [ + "BSD-3-Clause" + ], "authors": [ { "name": "Arne Blankerts", diff --git a/phpunit.xml b/phpunit.xml index 506b9a38..61c031c4 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -22,8 +22,8 @@ - - + + diff --git a/tests/Feature/Auth/AuthenticationTest.php b/tests/Feature/Auth/AuthenticationTest.php index a272b9d5..c59d166a 100644 --- a/tests/Feature/Auth/AuthenticationTest.php +++ b/tests/Feature/Auth/AuthenticationTest.php @@ -1,41 +1,54 @@ get('/login'); + public function test_login_screen_can_be_rendered() + { + $response = $this->get('/login'); - $response->assertStatus(200); -}); + $response->assertStatus(200); + } -test('users can authenticate using the login screen', function () { - $user = User::factory()->create(); + public function test_users_can_authenticate_using_the_login_screen() + { + $user = User::factory()->create(); - $response = $this->post('/login', [ - 'email' => $user->email, - 'password' => 'password', - ]); + $response = $this->post('/login', [ + 'email' => $user->email, + 'password' => 'password', + ]); - $this->assertAuthenticated(); - $response->assertRedirect(route('dashboard', absolute: false)); -}); + $this->assertAuthenticated(); + $response->assertRedirect(route('dashboard', absolute: false)); + } -test('users can not authenticate with invalid password', function () { - $user = User::factory()->create(); + public function test_users_can_not_authenticate_with_invalid_password() + { + $user = User::factory()->create(); - $this->post('/login', [ - 'email' => $user->email, - 'password' => 'wrong-password', - ]); + $this->post('/login', [ + 'email' => $user->email, + 'password' => 'wrong-password', + ]); - $this->assertGuest(); -}); + $this->assertGuest(); + } -test('users can logout', function () { - $user = User::factory()->create(); + public function test_users_can_logout() + { + $user = User::factory()->create(); - $response = $this->actingAs($user)->post('/logout'); + $response = $this->actingAs($user)->post('/logout'); - $this->assertGuest(); - $response->assertRedirect('/'); -}); + $this->assertGuest(); + $response->assertRedirect('/'); + } +} diff --git a/tests/Feature/Auth/EmailVerificationTest.php b/tests/Feature/Auth/EmailVerificationTest.php index 2bb2aeae..627fe709 100644 --- a/tests/Feature/Auth/EmailVerificationTest.php +++ b/tests/Feature/Auth/EmailVerificationTest.php @@ -1,47 +1,58 @@ unverified()->create(); +class EmailVerificationTest extends TestCase +{ + use RefreshDatabase; - $response = $this->actingAs($user)->get('/verify-email'); + public function test_email_verification_screen_can_be_rendered() + { + $user = User::factory()->unverified()->create(); - $response->assertStatus(200); -}); + $response = $this->actingAs($user)->get('/verify-email'); -test('email can be verified', function () { - $user = User::factory()->unverified()->create(); + $response->assertStatus(200); + } - Event::fake(); + public function test_email_can_be_verified() + { + $user = User::factory()->unverified()->create(); - $verificationUrl = URL::temporarySignedRoute( - 'verification.verify', - now()->addMinutes(60), - ['id' => $user->id, 'hash' => sha1($user->email)] - ); + Event::fake(); - $response = $this->actingAs($user)->get($verificationUrl); + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1($user->email)] + ); - Event::assertDispatched(Verified::class); + $response = $this->actingAs($user)->get($verificationUrl); - expect($user->fresh()->hasVerifiedEmail())->toBeTrue(); - $response->assertRedirect(route('dashboard', absolute: false).'?verified=1'); -}); + Event::assertDispatched(Verified::class); + $this->assertTrue($user->fresh()->hasVerifiedEmail()); + $response->assertRedirect(route('dashboard', absolute: false).'?verified=1'); + } -test('email is not verified with invalid hash', function () { - $user = User::factory()->unverified()->create(); + public function test_email_is_not_verified_with_invalid_hash() + { + $user = User::factory()->unverified()->create(); - $verificationUrl = URL::temporarySignedRoute( - 'verification.verify', - now()->addMinutes(60), - ['id' => $user->id, 'hash' => sha1('wrong-email')] - ); + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1('wrong-email')] + ); - $this->actingAs($user)->get($verificationUrl); + $this->actingAs($user)->get($verificationUrl); - expect($user->fresh()->hasVerifiedEmail())->toBeFalse(); -}); + $this->assertFalse($user->fresh()->hasVerifiedEmail()); + } +} diff --git a/tests/Feature/Auth/PasswordConfirmationTest.php b/tests/Feature/Auth/PasswordConfirmationTest.php index 8a42902e..d2072ffd 100644 --- a/tests/Feature/Auth/PasswordConfirmationTest.php +++ b/tests/Feature/Auth/PasswordConfirmationTest.php @@ -1,32 +1,44 @@ create(); + public function test_confirm_password_screen_can_be_rendered() + { + $user = User::factory()->create(); - $response = $this->actingAs($user)->get('/confirm-password'); + $response = $this->actingAs($user)->get('/confirm-password'); - $response->assertStatus(200); -}); + $response->assertStatus(200); + } -test('password can be confirmed', function () { - $user = User::factory()->create(); + public function test_password_can_be_confirmed() + { + $user = User::factory()->create(); - $response = $this->actingAs($user)->post('/confirm-password', [ - 'password' => 'password', - ]); + $response = $this->actingAs($user)->post('/confirm-password', [ + 'password' => 'password', + ]); - $response->assertRedirect(); - $response->assertSessionHasNoErrors(); -}); + $response->assertRedirect(); + $response->assertSessionHasNoErrors(); + } -test('password is not confirmed with invalid password', function () { - $user = User::factory()->create(); + public function test_password_is_not_confirmed_with_invalid_password() + { + $user = User::factory()->create(); - $response = $this->actingAs($user)->post('/confirm-password', [ - 'password' => 'wrong-password', - ]); + $response = $this->actingAs($user)->post('/confirm-password', [ + 'password' => 'wrong-password', + ]); - $response->assertSessionHasErrors(); -}); + $response->assertSessionHasErrors(); + } +} diff --git a/tests/Feature/Auth/PasswordResetTest.php b/tests/Feature/Auth/PasswordResetTest.php index 0504276a..3c7441f7 100644 --- a/tests/Feature/Auth/PasswordResetTest.php +++ b/tests/Feature/Auth/PasswordResetTest.php @@ -1,60 +1,73 @@ get('/forgot-password'); + public function test_reset_password_link_screen_can_be_rendered() + { + $response = $this->get('/forgot-password'); - $response->assertStatus(200); -}); + $response->assertStatus(200); + } -test('reset password link can be requested', function () { - Notification::fake(); + public function test_reset_password_link_can_be_requested() + { + Notification::fake(); - $user = User::factory()->create(); + $user = User::factory()->create(); - $this->post('/forgot-password', ['email' => $user->email]); + $this->post('/forgot-password', ['email' => $user->email]); - Notification::assertSentTo($user, ResetPassword::class); -}); + Notification::assertSentTo($user, ResetPassword::class); + } -test('reset password screen can be rendered', function () { - Notification::fake(); + public function test_reset_password_screen_can_be_rendered() + { + Notification::fake(); - $user = User::factory()->create(); + $user = User::factory()->create(); - $this->post('/forgot-password', ['email' => $user->email]); + $this->post('/forgot-password', ['email' => $user->email]); - Notification::assertSentTo($user, ResetPassword::class, function ($notification) { - $response = $this->get('/reset-password/'.$notification->token); + Notification::assertSentTo($user, ResetPassword::class, function ($notification) { + $response = $this->get('/reset-password/'.$notification->token); - $response->assertStatus(200); + $response->assertStatus(200); - return true; - }); -}); + return true; + }); + } -test('password can be reset with valid token', function () { - Notification::fake(); + public function test_password_can_be_reset_with_valid_token() + { + Notification::fake(); - $user = User::factory()->create(); + $user = User::factory()->create(); - $this->post('/forgot-password', ['email' => $user->email]); + $this->post('/forgot-password', ['email' => $user->email]); - Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) { - $response = $this->post('/reset-password', [ - 'token' => $notification->token, - 'email' => $user->email, - 'password' => 'password', - 'password_confirmation' => 'password', - ]); + Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) { + $response = $this->post('/reset-password', [ + 'token' => $notification->token, + 'email' => $user->email, + 'password' => 'password', + 'password_confirmation' => 'password', + ]); - $response - ->assertSessionHasNoErrors() - ->assertRedirect(route('login')); + $response + ->assertSessionHasNoErrors() + ->assertRedirect(route('login')); - return true; - }); -}); + return true; + }); + } +} diff --git a/tests/Feature/Auth/RegistrationTest.php b/tests/Feature/Auth/RegistrationTest.php index 352ca787..d0c3ea25 100644 --- a/tests/Feature/Auth/RegistrationTest.php +++ b/tests/Feature/Auth/RegistrationTest.php @@ -1,19 +1,31 @@ get('/register'); +namespace Tests\Feature\Auth; - $response->assertStatus(200); -}); +use Illuminate\Foundation\Testing\RefreshDatabase; +use Tests\TestCase; -test('new users can register', function () { - $response = $this->post('/register', [ - 'name' => 'Test User', - 'email' => 'test@example.com', - 'password' => 'password', - 'password_confirmation' => 'password', - ]); +class RegistrationTest extends TestCase +{ + use RefreshDatabase; - $this->assertAuthenticated(); - $response->assertRedirect(route('dashboard', absolute: false)); -}); + public function test_registration_screen_can_be_rendered() + { + $response = $this->get('/register'); + + $response->assertStatus(200); + } + + public function test_new_users_can_register() + { + $response = $this->post('/register', [ + 'name' => 'Test User', + 'email' => 'test@example.com', + 'password' => 'password', + 'password_confirmation' => 'password', + ]); + + $this->assertAuthenticated(); + $response->assertRedirect(route('dashboard', absolute: false)); + } +} diff --git a/tests/Feature/DashboardTest.php b/tests/Feature/DashboardTest.php index 9beacda0..5903f8f2 100644 --- a/tests/Feature/DashboardTest.php +++ b/tests/Feature/DashboardTest.php @@ -1,13 +1,27 @@ get('/dashboard')->assertRedirect('/login'); -}); + public function test_guests_are_redirected_to_the_login_page() + { + $response = $this->get('/dashboard'); + $response->assertRedirect('/login'); + } -test('authenticated users can visit the dashboard', function () { - $this->actingAs($user = User::factory()->create()); + public function test_authenticated_users_can_visit_the_dashboard() + { + $user = User::factory()->create(); + $this->actingAs($user); - $this->get('/dashboard')->assertStatus(200); -}); + $response = $this->get('/dashboard'); + $response->assertStatus(200); + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php index 8b5843f4..c3dd53d0 100644 --- a/tests/Feature/ExampleTest.php +++ b/tests/Feature/ExampleTest.php @@ -1,7 +1,18 @@ get('/'); +namespace Tests\Feature; - $response->assertStatus(200); -}); +use Illuminate\Foundation\Testing\RefreshDatabase; +use Tests\TestCase; + +class ExampleTest extends TestCase +{ + use RefreshDatabase; + + public function test_returns_a_successful_response() + { + $response = $this->get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/Feature/Settings/PasswordUpdateTest.php b/tests/Feature/Settings/PasswordUpdateTest.php index 213e0a16..64e9189b 100644 --- a/tests/Feature/Settings/PasswordUpdateTest.php +++ b/tests/Feature/Settings/PasswordUpdateTest.php @@ -1,40 +1,51 @@ create(); - - $response = $this - ->actingAs($user) - ->from('/settings/password') - ->put('/settings/password', [ - 'current_password' => 'password', - 'password' => 'new-password', - 'password_confirmation' => 'new-password', - ]); - - $response - ->assertSessionHasNoErrors() - ->assertRedirect('/settings/password'); - - $this->assertTrue(Hash::check('new-password', $user->refresh()->password)); -}); - -test('correct password must be provided to update password', function () { - $user = User::factory()->create(); - - $response = $this - ->actingAs($user) - ->from('/settings/password') - ->put('/settings/password', [ - 'current_password' => 'wrong-password', - 'password' => 'new-password', - 'password_confirmation' => 'new-password', - ]); - - $response - ->assertSessionHasErrors('current_password') - ->assertRedirect('/settings/password'); -}); +use Tests\TestCase; + +class PasswordUpdateTest extends TestCase +{ + use RefreshDatabase; + + public function test_password_can_be_updated() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->from('/settings/password') + ->put('/settings/password', [ + 'current_password' => 'password', + 'password' => 'new-password', + 'password_confirmation' => 'new-password', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/settings/password'); + + $this->assertTrue(Hash::check('new-password', $user->refresh()->password)); + } + + public function test_correct_password_must_be_provided_to_update_password() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->from('/settings/password') + ->put('/settings/password', [ + 'current_password' => 'wrong-password', + 'password' => 'new-password', + 'password_confirmation' => 'new-password', + ]); + + $response + ->assertSessionHasErrors('current_password') + ->assertRedirect('/settings/password'); + } +} diff --git a/tests/Feature/Settings/ProfileUpdateTest.php b/tests/Feature/Settings/ProfileUpdateTest.php index bcb77986..7d512144 100644 --- a/tests/Feature/Settings/ProfileUpdateTest.php +++ b/tests/Feature/Settings/ProfileUpdateTest.php @@ -1,85 +1,99 @@ create(); - - $response = $this - ->actingAs($user) - ->get('/settings/profile'); - - $response->assertOk(); -}); - -test('profile information can be updated', function () { - $user = User::factory()->create(); - - $response = $this - ->actingAs($user) - ->patch('/settings/profile', [ - 'name' => 'Test User', - 'email' => 'test@example.com', - ]); - - $response - ->assertSessionHasNoErrors() - ->assertRedirect('/settings/profile'); - - $user->refresh(); - - $this->assertSame('Test User', $user->name); - $this->assertSame('test@example.com', $user->email); - $this->assertNull($user->email_verified_at); -}); - -test('email verification status is unchanged when the email address is unchanged', function () { - $user = User::factory()->create(); - - $response = $this - ->actingAs($user) - ->patch('/settings/profile', [ - 'name' => 'Test User', - 'email' => $user->email, - ]); +namespace Tests\Feature\Settings; - $response - ->assertSessionHasNoErrors() - ->assertRedirect('/settings/profile'); - - $this->assertNotNull($user->refresh()->email_verified_at); -}); - -test('users can delete their account', function () { - $user = User::factory()->create(); - - $response = $this - ->actingAs($user) - ->delete('/settings/profile', [ - 'password' => 'password', - ]); - - $response - ->assertSessionHasNoErrors() - ->assertRedirect('/'); - - $this->assertGuest(); - $this->assertNull($user->fresh()); -}); - -test('correct password must be provided to delete account', function () { - $user = User::factory()->create(); - - $response = $this - ->actingAs($user) - ->from('/settings/profile') - ->delete('/settings/profile', [ - 'password' => 'wrong-password', - ]); - - $response - ->assertSessionHasErrors('password') - ->assertRedirect('/settings/profile'); - - $this->assertNotNull($user->fresh()); -}); +use App\Models\User; +use Illuminate\Foundation\Testing\RefreshDatabase; +use Tests\TestCase; + +class ProfileUpdateTest extends TestCase +{ + use RefreshDatabase; + + public function test_profile_page_is_displayed() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->get('/settings/profile'); + + $response->assertOk(); + } + + public function test_profile_information_can_be_updated() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->patch('/settings/profile', [ + 'name' => 'Test User', + 'email' => 'test@example.com', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/settings/profile'); + + $user->refresh(); + + $this->assertSame('Test User', $user->name); + $this->assertSame('test@example.com', $user->email); + $this->assertNull($user->email_verified_at); + } + + public function test_email_verification_status_is_unchanged_when_the_email_address_is_unchanged() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->patch('/settings/profile', [ + 'name' => 'Test User', + 'email' => $user->email, + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/settings/profile'); + + $this->assertNotNull($user->refresh()->email_verified_at); + } + + public function test_user_can_delete_their_account() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->delete('/settings/profile', [ + 'password' => 'password', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/'); + + $this->assertGuest(); + $this->assertNull($user->fresh()); + } + + public function test_correct_password_must_be_provided_to_delete_account() + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->from('/settings/profile') + ->delete('/settings/profile', [ + 'password' => 'wrong-password', + ]); + + $response + ->assertSessionHasErrors('password') + ->assertRedirect('/settings/profile'); + + $this->assertNotNull($user->fresh()); + } +} diff --git a/tests/Pest.php b/tests/Pest.php deleted file mode 100644 index 40d096b5..00000000 --- a/tests/Pest.php +++ /dev/null @@ -1,47 +0,0 @@ -extend(Tests\TestCase::class) - ->use(Illuminate\Foundation\Testing\RefreshDatabase::class) - ->in('Feature'); - -/* -|-------------------------------------------------------------------------- -| Expectations -|-------------------------------------------------------------------------- -| -| When you're writing tests, you often need to check that values meet certain conditions. The -| "expect()" function gives you access to a set of "expectations" methods that you can use -| to assert different things. Of course, you may extend the Expectation API at any time. -| -*/ - -expect()->extend('toBeOne', function () { - return $this->toBe(1); -}); - -/* -|-------------------------------------------------------------------------- -| Functions -|-------------------------------------------------------------------------- -| -| While Pest is very powerful out-of-the-box, you may have some testing code specific to your -| project that you don't want to repeat in every file. Here you can also expose helpers as -| global functions to help you to reduce the number of lines of code in your test files. -| -*/ - -function something() -{ - // .. -} diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php index 44a4f337..2cc6866f 100644 --- a/tests/Unit/ExampleTest.php +++ b/tests/Unit/ExampleTest.php @@ -1,5 +1,16 @@ toBeTrue(); -}); +namespace Tests\Unit; + +use Illuminate\Foundation\Testing\RefreshDatabase; +use Tests\TestCase; + +class ExampleTest extends TestCase +{ + use RefreshDatabase; + + public function test_that_true_is_true() + { + $this->assertTrue(true); + } +} From 612bf00b9f6912844785feea7b0b979baab2776e Mon Sep 17 00:00:00 2001 From: Tony Lea Date: Tue, 11 Feb 2025 17:37:55 -0500 Subject: [PATCH 2/2] Adding phpunit tests in tests.yml --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ce84df33..ab259348 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -53,4 +53,4 @@ jobs: run: npm run build - name: Tests - run: ./vendor/bin/pest --ci + run: ./vendor/bin/phpunit