diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c164d39..7f16098 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,94 +1,57 @@ name: Tests -on: [push, pull_request] +on: + workflow_dispatch: + push: + branches: + - master + paths: + - "**.json" + - "**.php" + - "**.yml" + pull_request: + branches: + - master + paths: + - "**.json" + - "**.php" + - "**.yml" jobs: tests: - runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: - os: [ubuntu-latest] - php: [8.1, 8.0, 7.4] - laravel: [10.*, 9.*, 8.*, 7.*, 6.*, 5.8.*, 5.7.*, 5.6.*] - dependency-version: [prefer-lowest, prefer-stable] + php: [8.3, 8.2, 8.1] + testbench: [9.0, 8.0, 7.0] # Laravel 11.x, 10.x, 9.x + version: [prefer-stable, prefer-lowest] include: - - laravel: 10.* - testbench: ^8.0 - - laravel: 9.* - testbench: ^7.0 - - laravel: 8.* - testbench: ^6.23 - - laravel: 7.* - testbench: ^5.20 - - laravel: 6.* - testbench: ^4.18 - - laravel: 5.8.* - testbench: 3.8.* - - laravel: 5.7.* - testbench: 3.7.* - - laravel: 5.6.* - testbench: 3.6.* + - testbench: 7.0 + phpunit: "-c phpunit-9.xml" exclude: - - laravel: 10.* - php: 8.0 - - laravel: 10.* - php: 7.4 - - laravel: 9.* - php: 7.4 - - laravel: 7.* - php: 8.1 - - laravel: 6.* - php: 8.1 - - laravel: 5.8.* - php: 8.1 - - laravel: 5.8.* - php: 8.0 - - laravel: 5.8.* - php: 7.4 - dependency-version: prefer-lowest - - laravel: 5.7.* - php: 8.1 - - laravel: 5.7.* - php: 8.0 - - laravel: 5.7.* - php: 7.4 - dependency-version: prefer-lowest - - laravel: 5.6.* - php: 8.1 - - laravel: 5.6.* - php: 8.0 - - laravel: 5.6.* - php: 7.4 - dependency-version: prefer-lowest + - php: 8.1 + testbench: 9.0 - name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} + name: P${{ matrix.php }} - T${{ matrix.testbench }} - ${{ matrix.version }} - steps: - - name: Checkout code - uses: actions/checkout@v2 + runs-on: ubuntu-latest - - name: Install SQLite 3 - run: | - sudo apt-get update - sudo apt-get install sqlite3 + container: + image: kirschbaumdevelopment/laravel-test-runner:${{ matrix.php }} + options: "--user=root" - - name: Setup PHP - uses: shivammathur/setup-php@v2 + steps: + - name: Checkout code + uses: actions/checkout@v4 with: - php-version: ${{ matrix.php }} - extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv - coverage: none + # Make sure the actual branch is checked out when running on pull requests. + ref: ${{ github.head_ref }} + token: ${{ secrets.GITHUB_TOKEN }} - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update - composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction - - - name: Setup Problem Matches - run: | - echo "::add-matcher::${{ runner.tool_cache }}/php.json" - echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + composer require "orchestra/testbench:^${{ matrix.testbench }}" --no-interaction --no-update + composer update --${{ matrix.version }} --prefer-dist --no-interaction - name: Execute tests - run: vendor/bin/phpunit + run: vendor/bin/phpunit ${{ matrix.phpunit }} diff --git a/.gitignore b/.gitignore index 620dcaa..09b9eba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /vendor -/tests/_reports /.idea /composer.lock +/.phpunit.cache /.phpunit.result.cache /.php-cs-fixer.cache diff --git a/README.md b/README.md index b2692a5..153890c 100644 --- a/README.md +++ b/README.md @@ -298,11 +298,6 @@ Running tests can be done either through composer, or directly calling the PHPUn ```bash composer test ``` -To run tests with code coverage, please make sure that `phpdbg` exists and is executable. -```bash -composer test-coverage -open tests/_reports/index.html -``` ## License The MIT License (MIT). Please see [License File](LICENSE) for more information. diff --git a/composer.json b/composer.json index f6a73e9..9388a85 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "frittenkeez/laravel-vouchers", - "description": "Voucher system for Laravel 5.6+", + "description": "Voucher system for Laravel 9+", "license": "MIT", "keywords": [ "coupon", @@ -16,16 +16,18 @@ } ], "require": { - "php": "^7.1.3|^8.0", - "illuminate/config": "~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/console": "~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/database": "~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0" + "php": "^8.1", + "illuminate/config": "^9.0|^10.0|^11.0", + "illuminate/console": "^9.0|^10.0|^11.0", + "illuminate/database": "^9.0|^10.0|^11.0", + "illuminate/support": "^9.0|^10.0|^11.0" }, "require-dev": { - "orchestra/testbench": "~3.6.0|~3.7.0|~3.8.0|^4.0|^5.0|^6.0|^7.0|^8.0", - "phpunit/phpunit": "~7.0|^8.0|^9.0", - "friendsofphp/php-cs-fixer": "^3.4" + "friendsofphp/php-cs-fixer": "^3.4", + "illuminate/support": "^9.45|^10.0|^11.0", + "nesbot/carbon": "^2.63", + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.6|^10.5" }, "config": { "allow-plugins": { @@ -48,7 +50,6 @@ }, "scripts": { "test": "phpunit", - "test-coverage": "phpdbg -qrr vendor/bin/phpunit --coverage-html tests/_reports", "fixer-check": "php-cs-fixer fix --verbose --dry-run", "fixer-fix": "php-cs-fixer fix" }, diff --git a/phpunit-9.xml b/phpunit-9.xml new file mode 100644 index 0000000..afbf65c --- /dev/null +++ b/phpunit-9.xml @@ -0,0 +1,28 @@ + + + + + src + + + + + ./tests + + + + + + + diff --git a/phpunit.xml b/phpunit.xml index 44f6dcc..b9e164b 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,27 +1,26 @@ + stopOnFailure="false" + cacheDirectory=".phpunit.cache" + backupStaticProperties="false" +> ./tests - - - src - - + + + src + + diff --git a/tests/VouchersTest.php b/tests/VouchersTest.php index 4e21583..846d0c7 100644 --- a/tests/VouchersTest.php +++ b/tests/VouchersTest.php @@ -253,7 +253,7 @@ public function testInvalidMagicCall(): void * * @return array */ - public function wrapProvider(): array + public static function wrapProvider(): array { return [ 'string only' => ['code', null, null, '-', 'code'],