From 6c5e9a73f9298801964ac6877664a0c595f2cd06 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Fri, 28 Feb 2020 10:54:00 +0100 Subject: [PATCH 01/22] remove unnecessary database columns in order table --- .../2020_02_28_105104_fix_order_columns.php | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 packages/Webkul/Sales/src/Database/Migrations/2020_02_28_105104_fix_order_columns.php diff --git a/packages/Webkul/Sales/src/Database/Migrations/2020_02_28_105104_fix_order_columns.php b/packages/Webkul/Sales/src/Database/Migrations/2020_02_28_105104_fix_order_columns.php new file mode 100644 index 000000000..b55718e11 --- /dev/null +++ b/packages/Webkul/Sales/src/Database/Migrations/2020_02_28_105104_fix_order_columns.php @@ -0,0 +1,31 @@ +removeColumn('customer_company_name'); + $table->removeColumn('customer_vat_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} From 3e9c68f01d8546c3debbf86cefee77f0f9c18e52 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Fri, 28 Feb 2020 11:41:48 +0100 Subject: [PATCH 02/22] introduce prepareCart() to be able to do checkout tests [wip] [ci-skip] --- composer.json | 11 +- composer.lock | 1194 ++++++++--------- .../Core/src/Helpers/Laravel5Helper.php | 92 ++ .../Database/Factories/CustomerFactory.php | 7 +- tests/_support/FunctionalTester.php | 10 +- tests/_support/Helper/Functional.php | 17 + tests/functional/Checkout/Order/OrderCest.php | 30 + 7 files changed, 742 insertions(+), 619 deletions(-) create mode 100644 tests/functional/Checkout/Order/OrderCest.php diff --git a/composer.json b/composer.json index 385ff7ad7..42bba6f11 100755 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "barryvdh/laravel-dompdf": "0.8.5", "doctrine/dbal": "2.9.2", "fideloper/proxy": "^4.0", - "flynsarmy/db-blade-compiler": "*", + "flynsarmy/db-blade-compiler": "^5.5", "guzzlehttp/guzzle": "~6.0", "intervention/image": "^2.4", "intervention/imagecache": "^2.3", @@ -33,9 +33,7 @@ "maatwebsite/excel": "3.1.18", "nwidart/laravel-modules": "^3.2", "prettus/l5-repository": "^2.6", - "tymon/jwt-auth": "^1.0.0", - "barryvdh/laravel-debugbar": "^3.1", - "fzaninotto/faker": "^1.4" + "tymon/jwt-auth": "^1.0.0" }, "require-dev": { @@ -44,10 +42,11 @@ "codeception/module-filesystem": "^1.0", "codeception/module-laravel5": "^1.0", "filp/whoops": "^2.0", - "laravel/dusk": "^5.7.0", "mockery/mockery": "^1.0", "nunomaduro/collision": "^2.0", - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0", + "barryvdh/laravel-debugbar": "^3.1", + "fzaninotto/faker": "^1.4" }, "replace": { diff --git a/composer.lock b/composer.lock index 3162eb99d..f3f569f11 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2e158f9cd141beb41f6bc0dd7ee82767", + "content-hash": "9ddc13af747ac1b8deeefebc202fc326", "packages": [ { "name": "astrotomic/laravel-translatable", - "version": "v11.7.0", + "version": "11.7.1", "source": { "type": "git", "url": "https://github.com/Astrotomic/laravel-translatable.git", - "reference": "889f8b91f28a8a72873099cf452945adbd03dc9f" + "reference": "d454ca5d73515a0878ed8b1f8df7e0510d351d2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/889f8b91f28a8a72873099cf452945adbd03dc9f", - "reference": "889f8b91f28a8a72873099cf452945adbd03dc9f", + "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/d454ca5d73515a0878ed8b1f8df7e0510d351d2c", + "reference": "d454ca5d73515a0878ed8b1f8df7e0510d351d2c", "shasum": "" }, "require": { @@ -68,75 +68,7 @@ "laravel", "translation" ], - "time": "2020-01-28T11:49:28+00:00" - }, - { - "name": "barryvdh/laravel-debugbar", - "version": "v3.2.8", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "18208d64897ab732f6c04a19b319fe8f1d57a9c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/18208d64897ab732f6c04a19b319fe8f1d57a9c0", - "reference": "18208d64897ab732f6c04a19b319fe8f1d57a9c0", - "shasum": "" - }, - "require": { - "illuminate/routing": "^5.5|^6", - "illuminate/session": "^5.5|^6", - "illuminate/support": "^5.5|^6", - "maximebf/debugbar": "~1.15.0", - "php": ">=7.0", - "symfony/debug": "^3|^4", - "symfony/finder": "^3|^4" - }, - "require-dev": { - "laravel/framework": "5.5.x" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - }, - "laravel": { - "providers": [ - "Barryvdh\\Debugbar\\ServiceProvider" - ], - "aliases": { - "Debugbar": "Barryvdh\\Debugbar\\Facade" - } - } - }, - "autoload": { - "psr-4": { - "Barryvdh\\Debugbar\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "PHP Debugbar integration for Laravel", - "keywords": [ - "debug", - "debugbar", - "laravel", - "profiler", - "webprofiler" - ], - "time": "2019-08-29T07:01:03+00:00" + "time": "2020-02-27T11:09:11+00:00" }, { "name": "barryvdh/laravel-dompdf", @@ -598,16 +530,16 @@ }, { "name": "dompdf/dompdf", - "version": "v0.8.4", + "version": "v0.8.5", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "8f49b3b01693f51037dd50da81090beba1b5c005" + "reference": "6782abfc090b132134cd6cea0ec6d76f0fce2c56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/8f49b3b01693f51037dd50da81090beba1b5c005", - "reference": "8f49b3b01693f51037dd50da81090beba1b5c005", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/6782abfc090b132134cd6cea0ec6d76f0fce2c56", + "reference": "6782abfc090b132134cd6cea0ec6d76f0fce2c56", "shasum": "" }, "require": { @@ -660,7 +592,7 @@ ], "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", "homepage": "https://github.com/dompdf/dompdf", - "time": "2020-01-20T17:00:46+00:00" + "time": "2020-02-20T03:52:51+00:00" }, { "name": "dragonmantank/cron-expression", @@ -776,24 +708,24 @@ }, { "name": "fideloper/proxy", - "version": "4.2.2", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "790194d5d3da89a713478875d2e2d05855a90a81" + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/790194d5d3da89a713478875d2e2d05855a90a81", - "reference": "790194d5d3da89a713478875d2e2d05855a90a81", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", "shasum": "" }, "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0", + "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0", "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0", + "illuminate/http": "^5.0|^6.0|^7.0|^8.0", "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, @@ -826,7 +758,7 @@ "proxy", "trusted proxy" ], - "time": "2019-12-20T13:11:11+00:00" + "time": "2020-02-22T01:51:47+00:00" }, { "name": "flynsarmy/db-blade-compiler", @@ -886,56 +818,6 @@ ], "time": "2019-07-28T22:19:29+00:00" }, - { - "name": "fzaninotto/faker", - "version": "v1.9.1", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^2.9.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "time": "2019-12-12T13:22:17+00:00" - }, { "name": "guzzlehttp/guzzle", "version": "6.5.2", @@ -1629,16 +1511,16 @@ }, { "name": "laravel/framework", - "version": "v6.16.0", + "version": "v6.17.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "b47217e41868d3049ec545cbb713aa94c6f39e55" + "reference": "32d1ed55dd46dcd706ff2e45bb7965be7320b87d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b47217e41868d3049ec545cbb713aa94c6f39e55", - "reference": "b47217e41868d3049ec545cbb713aa94c6f39e55", + "url": "https://api.github.com/repos/laravel/framework/zipball/32d1ed55dd46dcd706ff2e45bb7965be7320b87d", + "reference": "32d1ed55dd46dcd706ff2e45bb7965be7320b87d", "shasum": "" }, "require": { @@ -1771,7 +1653,7 @@ "framework", "laravel" ], - "time": "2020-02-18T15:17:52+00:00" + "time": "2020-02-26T14:23:01+00:00" }, { "name": "laravel/helpers", @@ -2333,67 +2215,6 @@ ], "time": "2019-10-06T11:29:25+00:00" }, - { - "name": "maximebf/debugbar", - "version": "v1.15.1", - "source": { - "type": "git", - "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "6c4277f6117e4864966c9cb58fb835cee8c74a1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/6c4277f6117e4864966c9cb58fb835cee8c74a1e", - "reference": "6c4277f6117e4864966c9cb58fb835cee8c74a1e", - "shasum": "" - }, - "require": { - "php": ">=5.6", - "psr/log": "^1.0", - "symfony/var-dumper": "^2.6|^3|^4" - }, - "require-dev": { - "phpunit/phpunit": "^5" - }, - "suggest": { - "kriswallsmith/assetic": "The best way to manage assets", - "monolog/monolog": "Log using Monolog", - "predis/predis": "Redis storage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.15-dev" - } - }, - "autoload": { - "psr-4": { - "DebugBar\\": "src/DebugBar/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Maxime Bouroumeau-Fuseau", - "email": "maxime.bouroumeau@gmail.com", - "homepage": "http://maximebf.com" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "Debug bar in the browser for php application", - "homepage": "https://github.com/maximebf/php-debugbar", - "keywords": [ - "debug", - "debugbar" - ], - "time": "2019-09-24T14:55:42+00:00" - }, { "name": "monolog/monolog", "version": "2.0.2", @@ -3479,16 +3300,16 @@ }, { "name": "ramsey/uuid", - "version": "3.9.2", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb" + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/7779489a47d443f845271badbdcedfe4df8e06fb", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92", + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92", "shasum": "" }, "require": { @@ -3562,7 +3383,7 @@ "identifier", "uuid" ], - "time": "2019-12-17T08:18:51+00:00" + "time": "2020-02-21T04:36:14+00:00" }, { "name": "sabberworm/php-css-parser", @@ -5331,17 +5152,85 @@ ], "packages-dev": [ { - "name": "behat/gherkin", - "version": "v4.6.0", + "name": "barryvdh/laravel-debugbar", + "version": "v3.2.9", "source": { "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" + "url": "https://github.com/barryvdh/laravel-debugbar.git", + "reference": "42d5da5379a7860093f8e4032167e4cb5ebec180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/42d5da5379a7860093f8e4032167e4cb5ebec180", + "reference": "42d5da5379a7860093f8e4032167e4cb5ebec180", + "shasum": "" + }, + "require": { + "illuminate/routing": "^5.5|^6|^7", + "illuminate/session": "^5.5|^6|^7", + "illuminate/support": "^5.5|^6|^7", + "maximebf/debugbar": "^1.15.1", + "php": ">=7.0", + "symfony/debug": "^3|^4|^5", + "symfony/finder": "^3|^4|^5" + }, + "require-dev": { + "laravel/framework": "5.5.x" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Debugbar\\ServiceProvider" + ], + "aliases": { + "Debugbar": "Barryvdh\\Debugbar\\Facade" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\Debugbar\\": "src/" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "PHP Debugbar integration for Laravel", + "keywords": [ + "debug", + "debugbar", + "laravel", + "profiler", + "webprofiler" + ], + "time": "2020-02-25T20:42:23+00:00" + }, + { + "name": "behat/gherkin", + "version": "v4.6.1", + "source": { + "type": "git", + "url": "https://github.com/Behat/Gherkin.git", + "reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/25bdcaf37898b4a939fa3031d5d753ced97e4759", + "reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759", "shasum": "" }, "require": { @@ -5387,7 +5276,7 @@ "gherkin", "parser" ], - "time": "2019-01-16T14:22:17+00:00" + "time": "2020-02-27T11:29:57+00:00" }, { "name": "codeception/codeception", @@ -5476,21 +5365,21 @@ }, { "name": "codeception/lib-asserts", - "version": "1.2.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/Codeception/lib-asserts.git", - "reference": "74bfe433af24e2f75c6386b9d843ec69029f4337" + "reference": "1fdc310bf857c11d3703ae02689a2e482c71c5ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/74bfe433af24e2f75c6386b9d843ec69029f4337", - "reference": "74bfe433af24e2f75c6386b9d843ec69029f4337", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/1fdc310bf857c11d3703ae02689a2e482c71c5ab", + "reference": "1fdc310bf857c11d3703ae02689a2e482c71c5ab", "shasum": "" }, "require": { - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", - "php": ">=5.6.0 <8.0" + "php": ">=7.2.0 <8.0", + "phpunit/phpunit": "^8.4 | ^9.0" }, "type": "library", "autoload": { @@ -5517,20 +5406,20 @@ "keywords": [ "codeception" ], - "time": "2020-02-07T17:47:55+00:00" + "time": "2020-02-11T10:45:21+00:00" }, { "name": "codeception/lib-innerbrowser", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "eb43279b3c1c34a10e1d4cda14e69924b0546ff2" + "reference": "2123542b1325cc349ac68868abe74638bcb32ab6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/eb43279b3c1c34a10e1d4cda14e69924b0546ff2", - "reference": "eb43279b3c1c34a10e1d4cda14e69924b0546ff2", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/2123542b1325cc349ac68868abe74638bcb32ab6", + "reference": "2123542b1325cc349ac68868abe74638bcb32ab6", "shasum": "" }, "require": { @@ -5570,7 +5459,7 @@ "keywords": [ "codeception" ], - "time": "2020-01-27T09:23:41+00:00" + "time": "2020-02-20T14:46:50+00:00" }, { "name": "codeception/module-asserts", @@ -5727,23 +5616,21 @@ }, { "name": "codeception/phpunit-wrapper", - "version": "7.8.0", + "version": "9.0.0", "source": { "type": "git", "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a" + "reference": "8dc5bf6e6a9c011a1030136115697d512edcdc23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a", - "reference": "bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/8dc5bf6e6a9c011a1030136115697d512edcdc23", + "reference": "8dc5bf6e6a9c011a1030136115697d512edcdc23", "shasum": "" }, "require": { - "phpunit/php-code-coverage": "^6.0", - "phpunit/phpunit": "7.5.*", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0" + "php": ">=7.2", + "phpunit/phpunit": "^9.0" }, "require-dev": { "codeception/specify": "*", @@ -5752,7 +5639,7 @@ "type": "library", "autoload": { "psr-4": { - "Codeception\\PHPUnit\\": "src\\" + "Codeception\\PHPUnit\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5763,28 +5650,30 @@ { "name": "Davert", "email": "davert.php@resend.cc" + }, + { + "name": "Naktibalda" } ], "description": "PHPUnit classes used by Codeception", - "time": "2019-12-23T06:55:58+00:00" + "time": "2020-02-07T17:19:08+00:00" }, { "name": "codeception/stub", - "version": "3.0.0", + "version": "3.6.1", "source": { "type": "git", "url": "https://github.com/Codeception/Stub.git", - "reference": "eea518711d736eab838c1274593c4568ec06b23d" + "reference": "a3ba01414cbee76a1bced9f9b6b169cc8d203880" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/eea518711d736eab838c1274593c4568ec06b23d", - "reference": "eea518711d736eab838c1274593c4568ec06b23d", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/a3ba01414cbee76a1bced9f9b6b169cc8d203880", + "reference": "a3ba01414cbee76a1bced9f9b6b169cc8d203880", "shasum": "" }, "require": { - "codeception/phpunit-wrapper": "^6.6.1 | ^7.7.1 | ^8.0.3", - "phpunit/phpunit": ">=6.5 <9.0" + "phpunit/phpunit": "^8.4 | ^9.0" }, "type": "library", "autoload": { @@ -5797,7 +5686,7 @@ "MIT" ], "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", - "time": "2019-08-10T16:20:53+00:00" + "time": "2020-02-07T18:42:28+00:00" }, { "name": "doctrine/instantiator", @@ -5916,6 +5805,56 @@ ], "time": "2020-01-15T10:00:00+00:00" }, + { + "name": "fzaninotto/faker", + "version": "v1.9.1", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7", + "squizlabs/php_codesniffer": "^2.9.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2019-12-12T13:22:17+00:00" + }, { "name": "hamcrest/hamcrest-php", "version": "v2.0.0", @@ -5965,53 +5904,41 @@ "time": "2016-01-20T08:20:44+00:00" }, { - "name": "laravel/dusk", - "version": "v5.9.2", + "name": "maximebf/debugbar", + "version": "v1.16.1", "source": { "type": "git", - "url": "https://github.com/laravel/dusk.git", - "reference": "7abf5a7152863f8597a43d640cce3adb6cd8ab3f" + "url": "https://github.com/maximebf/php-debugbar.git", + "reference": "58998b818c6567fac01e35b8a4b70c1a64530556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/7abf5a7152863f8597a43d640cce3adb6cd8ab3f", - "reference": "7abf5a7152863f8597a43d640cce3adb6cd8ab3f", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/58998b818c6567fac01e35b8a4b70c1a64530556", + "reference": "58998b818c6567fac01e35b8a4b70c1a64530556", "shasum": "" }, "require": { - "ext-json": "*", - "ext-zip": "*", - "illuminate/console": "~5.7.0|~5.8.0|^6.0|^7.0", - "illuminate/support": "~5.7.0|~5.8.0|^6.0|^7.0", - "nesbot/carbon": "^1.20|^2.0", - "php": ">=7.1.0", - "php-webdriver/webdriver": "^1.8.1", - "symfony/console": "^4.0|^5.0", - "symfony/finder": "^4.0|^5.0", - "symfony/process": "^4.0|^5.0", - "vlucas/phpdotenv": "^2.2|^3.0|^4.0" + "php": "^7.1", + "psr/log": "^1.0", + "symfony/var-dumper": "^2.6|^3|^4|^5" }, "require-dev": { - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^7.5|^8.0" + "phpunit/phpunit": "^5" }, "suggest": { - "ext-pcntl": "Used to gracefully terminate Dusk when tests are running." + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Dusk\\DuskServiceProvider" - ] + "dev-master": "1.16-dev" } }, "autoload": { "psr-4": { - "Laravel\\Dusk\\": "src/" + "DebugBar\\": "src/DebugBar/" } }, "notification-url": "https://packagist.org/downloads/", @@ -6020,17 +5947,22 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" } ], - "description": "Laravel Dusk provides simple end-to-end testing and browser automation.", + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/maximebf/php-debugbar", "keywords": [ - "laravel", - "testing", - "webdriver" + "debug", + "debugbar" ], - "time": "2020-02-18T19:13:12+00:00" + "time": "2019-11-24T09:46:11+00:00" }, { "name": "mockery/mockery", @@ -6311,71 +6243,6 @@ "description": "Library for handling version information and constraints", "time": "2018-07-08T19:19:57+00:00" }, - { - "name": "php-webdriver/webdriver", - "version": "1.8.1", - "source": { - "type": "git", - "url": "https://github.com/php-webdriver/php-webdriver.git", - "reference": "262ea0d209c292e0330be1041424887bbbffef04" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/262ea0d209c292e0330be1041424887bbbffef04", - "reference": "262ea0d209c292e0330be1041424887bbbffef04", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-zip": "*", - "php": "^5.6 || ~7.0", - "symfony/polyfill-mbstring": "^1.12", - "symfony/process": "^2.8 || ^3.1 || ^4.0 || ^5.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.0", - "jakub-onderka/php-parallel-lint": "^1.0", - "php-coveralls/php-coveralls": "^2.0", - "php-mock/php-mock-phpunit": "^1.1", - "phpunit/phpunit": "^5.7", - "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", - "sminnee/phpunit-mock-objects": "^3.4", - "squizlabs/php_codesniffer": "^3.5", - "symfony/var-dumper": "^3.3 || ^4.0 || ^5.0" - }, - "suggest": { - "ext-SimpleXML": "For Firefox profile creation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Facebook\\WebDriver\\": "lib/" - }, - "files": [ - "lib/Exception/TimeoutException.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A PHP client for Selenium WebDriver. Previously facebook/webdriver.", - "homepage": "https://github.com/php-webdriver/php-webdriver", - "keywords": [ - "Chromedriver", - "geckodriver", - "php", - "selenium", - "webdriver" - ], - "time": "2020-02-17T08:14:38+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.0.0", @@ -6430,16 +6297,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.0.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f" + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/a48807183a4b819072f26e347bbd0b5199a9d15f", - "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", "shasum": "" }, "require": { @@ -6479,7 +6346,7 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-09T09:16:15+00:00" + "time": "2020-02-22T12:28:44+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -6593,40 +6460,41 @@ }, { "name": "phpunit/php-code-coverage", - "version": "6.1.4", + "version": "8.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + "reference": "31e94ccc084025d6abee0585df533eb3a792b96a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/31e94ccc084025d6abee0585df533eb3a792b96a", + "reference": "31e94ccc084025d6abee0585df533eb3a792b96a", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1 || ^4.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "php": "^7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-token-stream": "^4.0", + "sebastian/code-unit-reverse-lookup": "^2.0", + "sebastian/environment": "^5.0", + "sebastian/version": "^3.0", + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "suggest": { - "ext-xdebug": "^2.6.0" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.1-dev" + "dev-master": "8.0-dev" } }, "autoload": { @@ -6652,32 +6520,32 @@ "testing", "xunit" ], - "time": "2018-10-31T16:06:48+00:00" + "time": "2020-02-19T13:41:19+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/354d4a5faa7449a377a18b94a2026ca3415e3d7a", + "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -6702,26 +6570,84 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "time": "2020-02-07T06:05:22+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/7579d5a1ba7f3ac11c80004d205877911315ae7a", + "reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "time": "2020-02-07T06:06:11+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/526dc996cc0ebdfa428cd2dfccd79b7b53fee346", + "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -6743,32 +6669,32 @@ "keywords": [ "template" ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2020-02-01T07:43:44+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.2", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/4118013a4d0f97356eae8e7fb2f6c6472575d1df", + "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -6792,33 +6718,33 @@ "keywords": [ "timer" ], - "time": "2019-06-07T04:22:29+00:00" + "time": "2020-02-07T06:08:11+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.1.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/b2560a0c33f7710e4d7f8780964193e8e8f8effe", + "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -6841,57 +6767,56 @@ "keywords": [ "tokenizer" ], - "time": "2019-09-17T06:23:10+00:00" + "time": "2020-02-07T06:19:00+00:00" }, { "name": "phpunit/phpunit", - "version": "7.5.20", + "version": "9.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" + "reference": "68d7e5b17a6b9461e17c00446caa409863154f76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", - "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/68d7e5b17a6b9461e17c00446caa409863154f76", + "reference": "68d7e5b17a6b9461e17c00446caa409863154f76", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.1", + "doctrine/instantiator": "^1.2.0", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^4.0", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.3", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^8.0", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-invoker": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-timer": "^3.0", + "sebastian/comparator": "^4.0", + "sebastian/diff": "^4.0", + "sebastian/environment": "^5.0", + "sebastian/exporter": "^4.0", + "sebastian/global-state": "^4.0", + "sebastian/object-enumerator": "^4.0", + "sebastian/resource-operations": "^3.0", + "sebastian/type": "^2.0", + "sebastian/version": "^3.0" }, "require-dev": { "ext-pdo": "*" }, "suggest": { "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" + "ext-xdebug": "*" }, "bin": [ "phpunit" @@ -6899,12 +6824,15 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.5-dev" + "dev-master": "9.0-dev" } }, "autoload": { "classmap": [ "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6925,32 +6853,32 @@ "testing", "xunit" ], - "time": "2020-01-08T08:45:45+00:00" + "time": "2020-02-13T07:30:12+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5b5dbe0044085ac41df47e79d34911a15b96d82e", + "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -6970,34 +6898,34 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "time": "2020-02-07T06:20:13+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85b3435da967696ed618ff745f32be3ff4a2b8e8", + "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8", "shasum": "" }, "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": "^7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -7010,6 +6938,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -7021,10 +6953,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -7034,33 +6962,33 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "time": "2020-02-07T06:08:51+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c0c26c9188b538bfa985ae10c9f05d278f12060d", + "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.0", + "symfony/process": "^4 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -7073,13 +7001,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -7090,27 +7018,27 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "time": "2020-02-07T06:09:38+00:00" }, { "name": "sebastian/environment", - "version": "4.2.3", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + "reference": "9bffdefa7810031a165ddd6275da6a2c1f6f2dfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9bffdefa7810031a165ddd6275da6a2c1f6f2dfb", + "reference": "9bffdefa7810031a165ddd6275da6a2c1f6f2dfb", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^9.0" }, "suggest": { "ext-posix": "*" @@ -7118,7 +7046,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -7143,34 +7071,34 @@ "environment", "hhvm" ], - "time": "2019-11-20T08:46:58+00:00" + "time": "2020-02-19T13:40:20+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "80c26562e964016538f832f305b2286e1ec29566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/80c26562e964016538f832f305b2286e1ec29566", + "reference": "80c26562e964016538f832f305b2286e1ec29566", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": "^7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -7210,27 +7138,30 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "time": "2020-02-07T06:10:52+00:00" }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72", + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^9.0" }, "suggest": { "ext-uopz": "*" @@ -7238,7 +7169,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -7261,34 +7192,34 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2020-02-07T06:11:37+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67516b175550abad905dc952f43285957ef4363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67516b175550abad905dc952f43285957ef4363", + "reference": "e67516b175550abad905dc952f43285957ef4363", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": "^7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -7308,122 +7239,27 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "time": "2020-02-07T06:12:23+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/f4fd0835cabb0d4a6546d9fe291e5740037aa1e7", + "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "shasum": "" - }, - "require": { - "php": "^7.1" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { @@ -7446,31 +7282,175 @@ "email": "sebastian@phpunit.de" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2020-02-07T06:19:40+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "sebastian/recursion-context", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cdd86616411fc3062368b720b0425de10bd3d579" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cdd86616411fc3062368b720b0425de10bd3d579", + "reference": "cdd86616411fc3062368b720b0425de10bd3d579", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2020-02-07T06:18:20+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98", + "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2020-02-07T06:13:02+00:00" + }, + { + "name": "sebastian/type", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/9e8f42f740afdea51f5f4e8cec2035580e797ee1", + "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2020-02-07T06:13:43+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "0411bde656dce64202b39c2f4473993a9081d39e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/0411bde656dce64202b39c2f4473993a9081d39e", + "reference": "0411bde656dce64202b39c2f4473993a9081d39e", + "shasum": "" + }, + "require": { + "php": "^7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" } }, "autoload": { @@ -7491,7 +7471,7 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "time": "2020-01-21T06:36:37+00:00" }, { "name": "symfony/browser-kit", diff --git a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php index baa7a650c..9a97dd3ca 100644 --- a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php +++ b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php @@ -6,9 +6,14 @@ namespace Webkul\Core\Helpers; // all public methods declared in helper class will be available in $I use Codeception\Module\Laravel5; +use Webkul\Checkout\Models\Cart; +use Webkul\Customer\Models\Customer; +use Webkul\Checkout\Models\CartItem; use Illuminate\Support\Facades\Event; use Webkul\Product\Models\Product; +use Webkul\Checkout\Models\CartAddress; use Webkul\Product\Models\ProductInventory; +use Webkul\Customer\Models\CustomerAddress; use Webkul\Product\Models\ProductAttributeValue; use Webkul\Product\Models\ProductDownloadableLink; use Webkul\Product\Models\ProductDownloadableLinkTranslation; @@ -64,6 +69,93 @@ class Laravel5Helper extends Laravel5 return $attributes[$attribute]; } + /** + * Generate a cart for the customer. Usually this is necessary to prepare the database + * before testing the checkout. + * + * @param array $options pass some options to configure some of the properties of the cart + * + * @return array the generated mocks as array + * + * @throws \Exception + */ + public function prepareCart(array $options = []): array + { + $faker = \Faker\Factory::create(); + + $I = $this; + + $product = $I->haveProduct(self::SIMPLE_PRODUCT, $options['productOptions'] ?? []); + + if (isset($options['customer'])) { + $customer = $options['customer']; + } else { + $customer = $I->have(Customer::class); + } + + $I->have(CustomerAddress::class, [ + 'customer_id' => $customer->id, + 'default_address' => 1, + 'first_name' => $customer->first_name, + 'last_name' => $customer->last_name, + 'company_name' => $faker->company, + ]); + + if (isset($options['payment_method']) && $options['payment_method'] === 'free_of_charge') { + $grand_total = '0.0000'; + $base_grand_total = '0.0000'; + } else { + $grand_total = (string)$faker->numberBetween(1, 666); + $base_grand_total = $grand_total; + } + + $cart = $I->have(Cart::class, [ + 'customer_id' => $customer->id, + 'customer_first_name' => $customer->first_name, + 'customer_last_name' => $customer->last_name, + 'customer_email' => $customer->email, + 'is_active' => 1, + 'channel_id' => 1, + 'grand_total' => $grand_total, + 'base_grand_total' => $base_grand_total, + ]); + + $cartAddress = $I->have(CartAddress::class, ['cart_id' => $cart->id]); + + + if (isset($options['product_type'])) { + $type = $options['product_type']; + } else { + $type = 'virtual'; + } + + $generatedCartItems = rand(3, 10); + for ($i = 2; $i <= $generatedCartItems; $i++) { + $cartItem = $I->have(CartItem::class, [ + 'type' => $type, + 'quantity' => random_int(1, 10), + 'cart_id' => $cart->id, + 'product_id' => $product->id, + ]); + } + + // actually set the cart to the user's session + // when in an functional test: + $stub = new \StdClass(); + $stub->id = $cart->id; + $I->setSession(['cart' => $stub]); + + return [ + 'cart' => $cart, + 'product' => $product, + 'customer' => $customer, + 'cartAddress' => $cartAddress, + 'cartItem' => $cartItem, + ]; + + } + + /** * Helper function to generate products for testing * diff --git a/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php b/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php index c51af93c6..54f42b0ea 100644 --- a/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php +++ b/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php @@ -8,12 +8,11 @@ use Webkul\Customer\Models\Customer; $factory->define(Customer::class, function (Faker $faker) { $now = date("Y-m-d H:i:s"); - $gender = array_rand(['male', 'female', 'other']); $password = $faker->password; return [ - 'first_name' => $faker->firstName($gender), + 'first_name' => $faker->firstName(), 'last_name' => $faker->lastName, - 'gender' => ucfirst($gender), + 'gender' => array_random(['male', 'female', 'other']), 'email' => $faker->email, 'status' => 1, 'password' => Hash::make($password), @@ -21,7 +20,7 @@ $factory->define(Customer::class, function (Faker $faker) { 'is_verified' => 1, 'created_at' => $now, 'updated_at' => $now, - 'notes' => json_encode(array('plain_password' => $password)), + 'notes' => json_encode(['plain_password' => $password]), ]; }); diff --git a/tests/_support/FunctionalTester.php b/tests/_support/FunctionalTester.php index 41b348f5a..4a1ab9406 100644 --- a/tests/_support/FunctionalTester.php +++ b/tests/_support/FunctionalTester.php @@ -6,6 +6,10 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Route; use Webkul\User\Models\Admin; use Webkul\Customer\Models\Customer; +use Webkul\Customer\Models\CustomerAddress; +use Webkul\Checkout\Models\Cart; +use Webkul\Checkout\Models\CartItem; +use Webkul\Checkout\Models\CartAddress; /** * Inherited Methods @@ -104,9 +108,11 @@ class FunctionalTester extends \Codeception\Actor * // TODO: change method as soon as there is a method to set core config data * * @param $data array containing 'code => value' pairs + * * @return void */ - public function setConfigData($data): void { + public function setConfigData($data): void + { foreach ($data as $key => $value) { if (DB::table('core_config')->where('code', '=', $key)->exists()) { DB::table('core_config')->where('code', '=', $key)->update(['value' => $value]); @@ -115,7 +121,7 @@ class FunctionalTester extends \Codeception\Actor 'code' => $key, 'value' => $value, 'created_at' => date('Y-m-d H:i:s'), - 'updated_at' => date('Y-m-d H:i:s') + 'updated_at' => date('Y-m-d H:i:s'), ]); } } diff --git a/tests/_support/Helper/Functional.php b/tests/_support/Helper/Functional.php index 4183cb0a5..9d1800eca 100644 --- a/tests/_support/Helper/Functional.php +++ b/tests/_support/Helper/Functional.php @@ -1,4 +1,5 @@ first(); + if (! $channel) { + throw new \Exception( + "Given theme '$theme' could not applied because channel '$channel' could not be fetched from database" + ); + } + + $channel->update(['theme' => $theme]); + } } diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php new file mode 100644 index 000000000..146523ed2 --- /dev/null +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -0,0 +1,30 @@ +loginAsCustomer(); + } + + $I->prepareCart(); + + + } + +} \ No newline at end of file From 781d360ce7727accd224d1e79b0d2aca9556437b Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Mon, 2 Mar 2020 08:24:51 +0100 Subject: [PATCH 03/22] add setSession and invalidateSession helper methods --- .../Core/src/Helpers/Laravel5Helper.php | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php index 9a97dd3ca..f2309bc56 100644 --- a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php +++ b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php @@ -63,7 +63,7 @@ class Laravel5Helper extends Laravel5 'brand' => 'text_value', 'guest_checkout' => 'boolean_value', ]; - if (!array_key_exists($attribute, $attributes)) { + if (! array_key_exists($attribute, $attributes)) { return null; } return $attributes[$attribute]; @@ -191,6 +191,27 @@ class Laravel5Helper extends Laravel5 return $product; } + /** + * Set all session with the given key and value in the array. + * + * @param array $keyValue + */ + public function setSession(array $keyValue) + { + session($keyValue); + } + + /** + * Flush the session data and regenerate the ID + * A logged in user will be logged off. + * + */ + public function invalidateSession() + { + session()->invalidate(); + } + + /** * @param array $configs * @param array $productStates @@ -200,7 +221,7 @@ class Laravel5Helper extends Laravel5 private function haveSimpleProduct(array $configs = [], array $productStates = []): Product { $I = $this; - if (!in_array('simple', $productStates)) { + if (! in_array('simple', $productStates)) { $productStates = array_merge($productStates, ['simple']); } @@ -223,7 +244,7 @@ class Laravel5Helper extends Laravel5 private function haveVirtualProduct(array $configs = [], array $productStates = []): Product { $I = $this; - if (!in_array('virtual', $productStates)) { + if (! in_array('virtual', $productStates)) { $productStates = array_merge($productStates, ['virtual']); } @@ -246,7 +267,7 @@ class Laravel5Helper extends Laravel5 private function haveDownloadableProduct(array $configs = [], array $productStates = []): Product { $I = $this; - if (!in_array('downloadable', $productStates)) { + if (! in_array('downloadable', $productStates)) { $productStates = array_merge($productStates, ['downloadable']); } @@ -329,7 +350,7 @@ class Laravel5Helper extends Laravel5 $data = ['product_id' => $productId]; if (array_key_exists($attribute, $attributeValues)) { $fieldName = self::getAttributeFieldName($attribute); - if (!array_key_exists($fieldName, $data)) { + if (! array_key_exists($fieldName, $data)) { $data[$fieldName] = $attributeValues[$attribute]; } else { $data = [$fieldName => $attributeValues[$attribute]]; From 895978e600b28b5948e2897182f0f4ec42b70645 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Mon, 2 Mar 2020 09:08:51 +0100 Subject: [PATCH 04/22] finish testCheckoutAsCustomer --- packages/Webkul/Checkout/src/Cart.php | 2 +- .../Core/src/Helpers/Laravel5Helper.php | 21 +++- .../Http/Controllers/OnepageController.php | 6 +- tests/_support/FunctionalTester.php | 14 ++- tests/functional/Checkout/Order/OrderCest.php | 99 ++++++++++++++++--- 5 files changed, 118 insertions(+), 24 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 07d695d42..fc353e670 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -837,7 +837,7 @@ class Cart */ public function hasError() { - if (!$this->getCart()) { + if (! $this->getCart()) { return true; } diff --git a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php index f2309bc56..051cdeab2 100644 --- a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php +++ b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php @@ -101,7 +101,8 @@ class Laravel5Helper extends Laravel5 'company_name' => $faker->company, ]); - if (isset($options['payment_method']) && $options['payment_method'] === 'free_of_charge') { + if (isset($options['payment_method']) + && $options['payment_method'] === 'free_of_charge') { $grand_total = '0.0000'; $base_grand_total = '0.0000'; } else { @@ -122,11 +123,10 @@ class Laravel5Helper extends Laravel5 $cartAddress = $I->have(CartAddress::class, ['cart_id' => $cart->id]); - if (isset($options['product_type'])) { $type = $options['product_type']; } else { - $type = 'virtual'; + $type = 'simple'; } $generatedCartItems = rand(3, 10); @@ -166,7 +166,11 @@ class Laravel5Helper extends Laravel5 * @return \Webkul\Product\Models\Product * @part ORM */ - public function haveProduct(int $productType, array $configs = [], array $productStates = []): Product + public function haveProduct( + int $productType, + array $configs = [], + array $productStates = [] + ): Product { $I = $this; @@ -218,9 +222,13 @@ class Laravel5Helper extends Laravel5 * * @return \Webkul\Product\Models\Product */ - private function haveSimpleProduct(array $configs = [], array $productStates = []): Product + private function haveSimpleProduct( + array $configs = [], + array $productStates = [] + ): Product { $I = $this; + if (! in_array('simple', $productStates)) { $productStates = array_merge($productStates, ['simple']); } @@ -299,10 +307,13 @@ class Laravel5Helper extends Laravel5 private function createInventory(int $productId, array $inventoryConfig = []): void { $I = $this; + $I->have(ProductInventory::class, array_merge($inventoryConfig, [ 'product_id' => $productId, 'inventory_source_id' => 1, + 'qty' => random_int(100, 666), ])); + } /** diff --git a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php index 541787a87..261a913ba 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php @@ -57,12 +57,14 @@ class OnepageController extends Controller */ public function index() { - if (! auth()->guard('customer')->check() && ! core()->getConfigData('catalog.products.guest-checkout.allow-guest-checkout')) { + if (! auth()->guard('customer')->check() + && ! core()->getConfigData('catalog.products.guest-checkout.allow-guest-checkout')) { return redirect()->route('customer.session.index'); } - if (Cart::hasError()) + if (Cart::hasError()) { return redirect()->route('shop.checkout.cart.index'); + } $cart = Cart::getCart(); diff --git a/tests/_support/FunctionalTester.php b/tests/_support/FunctionalTester.php index 4a1ab9406..18a68fb7a 100644 --- a/tests/_support/FunctionalTester.php +++ b/tests/_support/FunctionalTester.php @@ -115,13 +115,17 @@ class FunctionalTester extends \Codeception\Actor { foreach ($data as $key => $value) { if (DB::table('core_config')->where('code', '=', $key)->exists()) { - DB::table('core_config')->where('code', '=', $key)->update(['value' => $value]); + DB::table('core_config') + ->where('code', '=', $key) + ->update(['value' => $value]); } else { DB::table('core_config')->insert([ - 'code' => $key, - 'value' => $value, - 'created_at' => date('Y-m-d H:i:s'), - 'updated_at' => date('Y-m-d H:i:s'), + 'code' => $key, + 'value' => $value, + 'channel_code' => null, + 'locale_code' => null, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), ]); } } diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index 146523ed2..ed92c952d 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -4,27 +4,104 @@ namespace Tests\Functional\Checkout\Cart; use FunctionalTester; use Cart; -use Codeception\Example; +use Webkul\Sales\Models\OrderAddress; +use Webkul\Checkout\Models\CartAddress; class OrderCest { /** * @param \FunctionalTester $I - * - * @example {"isGuest": true} - * - * @example {"isGuest": false} */ - public function testCheckout(FunctionalTester $I, Example $example) + public function testCheckoutAsCustomer(FunctionalTester $I) { - if (! $example['isGuest']) { - $I->loginAsCustomer(); - } + $customer = $I->loginAsCustomer(); - $I->prepareCart(); + $mocks = $I->prepareCart([ + 'customer' => $customer, + ]); + // assert that checkout can be reached and generate csrf token. + $I->amOnRoute('shop.checkout.onepage.index'); + // simulate the entering of the address(es): + $I->sendAjaxPostRequest(route('shop.checkout.save-address'), [ + '_token' => csrf_token(), + 'billing' => [ + 'address1' => ['900 Nobel Parkway'], + 'city' => 'Quia et cillum rerum', + 'company_name' => 'Davis and Best Plc', + 'country' => 'TN', + 'email' => 'kularynefo@mailinator.com', + 'first_name' => 'Maggie', + 'last_name' => 'Paul', + 'phone' => '+1 (995) 347-2667', + 'postcode' => '16239', + 'save_as_address' => true, + 'state' => 'Aperiam a eligendi a', + 'use_for_shipping' => true, + ], + 'shipping' => [ + 'address1' => ['900 Nobel Parkway'], + 'city' => 'Quia et cillum rerum', + 'company_name' => 'Davis and Best Plc', + 'country' => 'TN', + 'email' => 'kularynefo@mailinator.com', + 'first_name' => 'Maggie', + 'last_name' => 'Paul', + 'phone' => '+1 (995) 347-2667', + 'postcode' => '16239', + 'save_as_address' => true, + 'state' => 'Aperiam a eligendi a', + 'use_for_shipping' => true, + ], + ]); + + $I->seeResponseCodeIsSuccessful(); + + $I->seeRecord(CartAddress::class, [ + 'city' => 'Quia et cillum rerum', + 'company_name' => 'Davis and Best Plc', + 'country' => 'TN', + 'email' => 'kularynefo@mailinator.com', + 'first_name' => 'Maggie', + 'last_name' => 'Paul', + 'phone' => '+1 (995) 347-2667', + 'postcode' => '16239', + ]); + + $I->sendAjaxPostRequest(route('shop.checkout.save-shipping'), [ + '_token' => csrf_token(), + 'shipping_method' => 'free_free', + ]); + + $I->seeResponseCodeIsSuccessful(); + + $I->sendAjaxPostRequest(route('shop.checkout.save-payment'), [ + '_token' => csrf_token(), + 'payment' => [ + 'method' => 'cashondelivery', + ], + ]); + + $I->seeResponseCodeIsSuccessful(); + + // simulate click on the 'place order' button at the last step: + $I->sendAjaxPostRequest(route('shop.checkout.save-order'), + ['_token' => csrf_token()] + ); + + $I->seeResponseCodeIsSuccessful(); + + $I->seeRecord(OrderAddress::class, [ + 'city' => 'Quia et cillum rerum', + 'company_name' => 'Davis and Best Plc', + 'country' => 'TN', + 'email' => 'kularynefo@mailinator.com', + 'first_name' => 'Maggie', + 'last_name' => 'Paul', + 'phone' => '+1 (995) 347-2667', + 'postcode' => '16239', + ]); } - } \ No newline at end of file From b6f81af54ebfe9489061a3a9ae05c2c6f8c701c5 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 3 Mar 2020 10:53:14 +0100 Subject: [PATCH 05/22] DRY OrderCest.php a little bit --- tests/functional/Checkout/Order/OrderCest.php | 60 ++++++------------- 1 file changed, 18 insertions(+), 42 deletions(-) diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index ed92c952d..667c534aa 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -17,6 +17,18 @@ class OrderCest { $customer = $I->loginAsCustomer(); + $addressData = [ + 'city' => 'Quia et cillum rerum', + 'company_name' => 'Davis and Best Plc', + 'country' => 'TN', + 'email' => 'kularynefo@mailinator.com', + 'first_name' => 'Maggie', + 'last_name' => 'Paul', + 'phone' => '+1 (995) 347-2667', + 'postcode' => '16239', + 'state' => 'Aperiam a eligendi a', + ]; + $mocks = $I->prepareCart([ 'customer' => $customer, ]); @@ -27,48 +39,21 @@ class OrderCest // simulate the entering of the address(es): $I->sendAjaxPostRequest(route('shop.checkout.save-address'), [ '_token' => csrf_token(), - 'billing' => [ + 'billing' => array_merge($addressData, [ 'address1' => ['900 Nobel Parkway'], - 'city' => 'Quia et cillum rerum', - 'company_name' => 'Davis and Best Plc', - 'country' => 'TN', - 'email' => 'kularynefo@mailinator.com', - 'first_name' => 'Maggie', - 'last_name' => 'Paul', - 'phone' => '+1 (995) 347-2667', - 'postcode' => '16239', 'save_as_address' => true, - 'state' => 'Aperiam a eligendi a', 'use_for_shipping' => true, - ], - 'shipping' => [ + ]), + 'shipping' => array_merge($addressData, [ 'address1' => ['900 Nobel Parkway'], - 'city' => 'Quia et cillum rerum', - 'company_name' => 'Davis and Best Plc', - 'country' => 'TN', - 'email' => 'kularynefo@mailinator.com', - 'first_name' => 'Maggie', - 'last_name' => 'Paul', - 'phone' => '+1 (995) 347-2667', - 'postcode' => '16239', 'save_as_address' => true, - 'state' => 'Aperiam a eligendi a', 'use_for_shipping' => true, - ], + ]), ]); $I->seeResponseCodeIsSuccessful(); - $I->seeRecord(CartAddress::class, [ - 'city' => 'Quia et cillum rerum', - 'company_name' => 'Davis and Best Plc', - 'country' => 'TN', - 'email' => 'kularynefo@mailinator.com', - 'first_name' => 'Maggie', - 'last_name' => 'Paul', - 'phone' => '+1 (995) 347-2667', - 'postcode' => '16239', - ]); + $I->seeRecord(CartAddress::class, $addressData); $I->sendAjaxPostRequest(route('shop.checkout.save-shipping'), [ '_token' => csrf_token(), @@ -93,15 +78,6 @@ class OrderCest $I->seeResponseCodeIsSuccessful(); - $I->seeRecord(OrderAddress::class, [ - 'city' => 'Quia et cillum rerum', - 'company_name' => 'Davis and Best Plc', - 'country' => 'TN', - 'email' => 'kularynefo@mailinator.com', - 'first_name' => 'Maggie', - 'last_name' => 'Paul', - 'phone' => '+1 (995) 347-2667', - 'postcode' => '16239', - ]); + $I->seeRecord(OrderAddress::class, $addressData); } } \ No newline at end of file From d3d666d23004e0a298f778accde6be4113bc305d Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 3 Mar 2020 10:55:37 +0100 Subject: [PATCH 06/22] use faker to generate random data in OrderCest.php --- tests/functional/Checkout/Order/OrderCest.php | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index 667c534aa..da55b6ca6 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -2,11 +2,17 @@ namespace Tests\Functional\Checkout\Cart; +use Faker\Factory; use FunctionalTester; use Cart; use Webkul\Sales\Models\OrderAddress; use Webkul\Checkout\Models\CartAddress; +/** + * Class OrderCest + * + * @package Tests\Functional\Checkout\Cart + */ class OrderCest { @@ -17,16 +23,18 @@ class OrderCest { $customer = $I->loginAsCustomer(); + $faker = Factory::create(); + $addressData = [ - 'city' => 'Quia et cillum rerum', - 'company_name' => 'Davis and Best Plc', - 'country' => 'TN', - 'email' => 'kularynefo@mailinator.com', - 'first_name' => 'Maggie', - 'last_name' => 'Paul', - 'phone' => '+1 (995) 347-2667', - 'postcode' => '16239', - 'state' => 'Aperiam a eligendi a', + 'city' => $faker->city, + 'company_name' => $faker->company, + 'country' => $faker->countryCode, + 'email' => $faker->email, + 'first_name' => $faker->firstName, + 'last_name' => $faker->lastName, + 'phone' => $faker->phoneNumber, + 'postcode' => $faker->postcode, + 'state' => $faker->state, ]; $mocks = $I->prepareCart([ From e094dfd09c5c9720b592e5b5ac92807403bcfb3a Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 3 Mar 2020 11:18:18 +0100 Subject: [PATCH 07/22] add additional assertions to OrderCest.php --- .../Core/src/Helpers/Laravel5Helper.php | 23 +++++--- tests/functional/Checkout/Order/OrderCest.php | 53 ++++++++++++++++++- 2 files changed, 68 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php index 051cdeab2..265cbe261 100644 --- a/packages/Webkul/Core/src/Helpers/Laravel5Helper.php +++ b/packages/Webkul/Core/src/Helpers/Laravel5Helper.php @@ -129,14 +129,24 @@ class Laravel5Helper extends Laravel5 $type = 'simple'; } + $totalQtyOrdered = 0; + + $cartItems = []; + $generatedCartItems = rand(3, 10); + for ($i = 2; $i <= $generatedCartItems; $i++) { + $quantity = random_int(1, 10); $cartItem = $I->have(CartItem::class, [ 'type' => $type, - 'quantity' => random_int(1, 10), + 'quantity' => $quantity, 'cart_id' => $cart->id, 'product_id' => $product->id, ]); + + $totalQtyOrdered += $quantity; + + $cartItems[] = $cartItem; } // actually set the cart to the user's session @@ -146,11 +156,12 @@ class Laravel5Helper extends Laravel5 $I->setSession(['cart' => $stub]); return [ - 'cart' => $cart, - 'product' => $product, - 'customer' => $customer, - 'cartAddress' => $cartAddress, - 'cartItem' => $cartItem, + 'cart' => $cart, + 'product' => $product, + 'customer' => $customer, + 'cartAddress' => $cartAddress, + 'cartItems' => $cartItems, + 'totalQtyOrdered' => $totalQtyOrdered, ]; } diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index da55b6ca6..03a7c89f0 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -5,8 +5,13 @@ namespace Tests\Functional\Checkout\Cart; use Faker\Factory; use FunctionalTester; use Cart; +use Webkul\Sales\Models\Order; use Webkul\Sales\Models\OrderAddress; +use Webkul\Sales\Models\OrderPayment; use Webkul\Checkout\Models\CartAddress; +use Webkul\Checkout\Models\CartPayment; +use Webkul\Customer\Models\Customer; +use Webkul\Core\Models\Channel; /** * Class OrderCest @@ -61,7 +66,15 @@ class OrderCest $I->seeResponseCodeIsSuccessful(); - $I->seeRecord(CartAddress::class, $addressData); + $I->seeRecord(CartAddress::class, array_merge($addressData, [ + 'address_type' => 'shipping', + 'cart_id' => $mocks['cart']->id, + ])); + + $I->seeRecord(CartAddress::class, array_merge($addressData, [ + 'address_type' => 'billing', + 'cart_id' => $mocks['cart']->id, + ])); $I->sendAjaxPostRequest(route('shop.checkout.save-shipping'), [ '_token' => csrf_token(), @@ -79,6 +92,12 @@ class OrderCest $I->seeResponseCodeIsSuccessful(); + $I->seeRecord(CartPayment::class, [ + 'method' => 'cashondelivery', + 'method_title' => null, + 'cart_id' => $mocks['cart']->id, + ]); + // simulate click on the 'place order' button at the last step: $I->sendAjaxPostRequest(route('shop.checkout.save-order'), ['_token' => csrf_token()] @@ -86,6 +105,36 @@ class OrderCest $I->seeResponseCodeIsSuccessful(); - $I->seeRecord(OrderAddress::class, $addressData); + $order = $I->grabRecord(Order::class, [ + 'status' => 'pending', + 'channel_name' => 'Default', + 'is_guest' => 0, + 'shipping_method' => 'free_free', + 'shipping_title' => 'Free Shipping - Free Shipping', + 'shipping_description' => 'Free Shipping', + 'customer_type' => Customer::class, + 'channel_id' => 1, + 'channel_type' => Channel::class, + 'cart_id' => $mocks['cart']->id, + 'customer_id' => $customer->id, + 'total_item_count' => count($mocks['cartItems']), + 'total_qty_ordered' => $mocks['totalQtyOrdered'], + ]); + + $I->seeRecord(OrderAddress::class, array_merge($addressData, [ + 'order_id' => $order->id, + 'address_type' => 'shipping', + ])); + + $I->seeRecord(OrderAddress::class, array_merge($addressData, [ + 'order_id' => $order->id, + 'address_type' => 'billing', + ])); + + $I->seeRecord(OrderPayment::class, [ + 'method' => 'cashondelivery', + 'method_title' => null, + 'order_id' => $order->id, + ]); } } \ No newline at end of file From fd6601ecdf73acf75aef68fee0f1f7c222c508d4 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 3 Mar 2020 11:22:34 +0100 Subject: [PATCH 08/22] three more assertions about customer --- tests/functional/Checkout/Order/OrderCest.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index 03a7c89f0..be0ae2335 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -109,6 +109,9 @@ class OrderCest 'status' => 'pending', 'channel_name' => 'Default', 'is_guest' => 0, + 'customer_first_name' => $customer->first_name, + 'customer_last_name' => $customer->last_name, + 'customer_email' => $customer->email, 'shipping_method' => 'free_free', 'shipping_title' => 'Free Shipping - Free Shipping', 'shipping_description' => 'Free Shipping', From d9072508cdcb603c050274433681b0958639315a Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Wed, 4 Mar 2020 10:38:29 +0100 Subject: [PATCH 09/22] introduce a fallback in case the customer profile is not filled completely. Take the billing address information then. --- .../Webkul/API/Http/Resources/Sales/Order.php | 173 +++++++++--------- packages/Webkul/Checkout/src/Cart.php | 114 +++++++----- 2 files changed, 159 insertions(+), 128 deletions(-) diff --git a/packages/Webkul/API/Http/Resources/Sales/Order.php b/packages/Webkul/API/Http/Resources/Sales/Order.php index 5f59e561c..0ef36e52a 100644 --- a/packages/Webkul/API/Http/Resources/Sales/Order.php +++ b/packages/Webkul/API/Http/Resources/Sales/Order.php @@ -11,99 +11,100 @@ class Order extends JsonResource /** * Transform the resource into an array. * - * @param \Illuminate\Http\Request + * @param \Illuminate\Http\Request + * * @return array */ public function toArray($request) { return [ - 'id' => $this->id, - 'status' => $this->status, - 'status_label' => $this->status_label, - 'channel_name' => $this->channel_name, - 'is_guest' => $this->is_guest, - 'customer_email' => $this->customer_email, - 'customer_first_name' => $this->customer_first_name, - 'customer_last_name' => $this->customer_last_name, - 'shipping_method' => $this->shipping_method, - 'shipping_title' => $this->shipping_title, - 'payment_title' => core()->getConfigData('sales.paymentmethods.' . $this->payment->method . '.title'), - 'shipping_description' => $this->shipping_description, - 'coupon_code' => $this->coupon_code, - 'is_gift' => $this->is_gift, - 'total_item_count' => $this->total_item_count, - 'total_qty_ordered' => $this->total_qty_ordered, - 'base_currency_code' => $this->base_currency_code, - 'channel_currency_code' => $this->channel_currency_code, - 'order_currency_code' => $this->order_currency_code, - 'grand_total' => $this->grand_total, - 'formated_grand_total' => core()->formatPrice($this->grand_total, $this->order_currency_code), - 'base_grand_total' => $this->base_grand_total, - 'formated_base_grand_total' => core()->formatBasePrice($this->base_grand_total), - 'grand_total_invoiced' => $this->grand_total_invoiced, - 'formated_grand_total_invoiced' => core()->formatPrice($this->grand_total_invoiced, $this->order_currency_code), - 'base_grand_total_invoiced' => $this->base_grand_total_invoiced, + 'id' => $this->id, + 'status' => $this->status, + 'status_label' => $this->status_label, + 'channel_name' => $this->channel_name, + 'is_guest' => $this->is_guest, + 'customer_email' => $this->customer_email, + 'customer_first_name' => $this->customer_first_name, + 'customer_last_name' => $this->customer_last_name, + 'shipping_method' => $this->shipping_method, + 'shipping_title' => $this->shipping_title, + 'payment_title' => core()->getConfigData('sales.paymentmethods.' . $this->payment->method . '.title'), + 'shipping_description' => $this->shipping_description, + 'coupon_code' => $this->coupon_code, + 'is_gift' => $this->is_gift, + 'total_item_count' => $this->total_item_count, + 'total_qty_ordered' => $this->total_qty_ordered, + 'base_currency_code' => $this->base_currency_code, + 'channel_currency_code' => $this->channel_currency_code, + 'order_currency_code' => $this->order_currency_code, + 'grand_total' => $this->grand_total, + 'formated_grand_total' => core()->formatPrice($this->grand_total, $this->order_currency_code), + 'base_grand_total' => $this->base_grand_total, + 'formated_base_grand_total' => core()->formatBasePrice($this->base_grand_total), + 'grand_total_invoiced' => $this->grand_total_invoiced, + 'formated_grand_total_invoiced' => core()->formatPrice($this->grand_total_invoiced, $this->order_currency_code), + 'base_grand_total_invoiced' => $this->base_grand_total_invoiced, 'formated_base_grand_total_invoiced' => core()->formatBasePrice($this->base_grand_total_invoiced), - 'grand_total_refunded' => $this->grand_total_refunded, - 'formated_grand_total_refunded' => core()->formatPrice($this->grand_total_refunded, $this->order_currency_code), - 'base_grand_total_refunded' => $this->base_grand_total_refunded, + 'grand_total_refunded' => $this->grand_total_refunded, + 'formated_grand_total_refunded' => core()->formatPrice($this->grand_total_refunded, $this->order_currency_code), + 'base_grand_total_refunded' => $this->base_grand_total_refunded, 'formated_base_grand_total_refunded' => core()->formatBasePrice($this->base_grand_total_refunded), - 'sub_total' => $this->sub_total, - 'formated_sub_total' => core()->formatPrice($this->sub_total, $this->order_currency_code), - 'base_sub_total' => $this->base_sub_total, - 'formated_base_sub_total' => core()->formatBasePrice($this->base_sub_total), - 'sub_total_invoiced' => $this->sub_total_invoiced, - 'formated_sub_total_invoiced' => core()->formatPrice($this->sub_total_invoiced, $this->order_currency_code), - 'base_sub_total_invoiced' => $this->base_sub_total_invoiced, - 'formated_base_sub_total_invoiced' => core()->formatBasePrice($this->base_sub_total_invoiced), - 'sub_total_refunded' => $this->sub_total_refunded, - 'formated_sub_total_refunded' => core()->formatPrice($this->sub_total_refunded, $this->order_currency_code), - 'discount_percent' => $this->discount_percent, - 'discount_amount' => $this->discount_amount, - 'formated_discount_amount' => core()->formatPrice($this->discount_amount, $this->order_currency_code), - 'base_discount_amount' => $this->base_discount_amount, - 'formated_base_discount_amount' => core()->formatBasePrice($this->base_discount_amount), - 'discount_invoiced' => $this->discount_invoiced, - 'formated_discount_invoiced' => core()->formatPrice($this->discount_invoiced, $this->order_currency_code), - 'base_discount_invoiced' => $this->base_discount_invoiced, - 'formated_base_discount_invoiced' => core()->formatBasePrice($this->base_discount_invoiced), - 'discount_refunded' => $this->discount_refunded, - 'formated_discount_refunded' => core()->formatPrice($this->discount_refunded, $this->order_currency_code), - 'base_discount_refunded' => $this->base_discount_refunded, - 'formated_base_discount_refunded' => core()->formatBasePrice($this->base_discount_refunded), - 'tax_amount' => $this->tax_amount, - 'formated_tax_amount' => core()->formatPrice($this->tax_amount, $this->order_currency_code), - 'base_tax_amount' => $this->base_tax_amount, - 'formated_base_tax_amount' => core()->formatBasePrice($this->base_tax_amount), - 'tax_amount_invoiced' => $this->tax_amount_invoiced, - 'formated_tax_amount_invoiced' => core()->formatPrice($this->tax_amount_invoiced, $this->order_currency_code), - 'base_tax_amount_invoiced' => $this->base_tax_amount_invoiced, - 'formated_base_tax_amount_invoiced' => core()->formatBasePrice($this->base_tax_amount_invoiced), - 'tax_amount_refunded' => $this->tax_amount_refunded, - 'formated_tax_amount_refunded' => core()->formatPrice($this->tax_amount_refunded, $this->order_currency_code), - 'base_tax_amount_refunded' => $this->base_tax_amount_refunded, - 'formated_base_tax_amount_refunded' => core()->formatBasePrice($this->base_tax_amount_refunded), - 'shipping_amount' => $this->shipping_amount, - 'formated_shipping_amount' => core()->formatPrice($this->shipping_amount, $this->order_currency_code), - 'base_shipping_amount' => $this->base_shipping_amount, - 'formated_base_shipping_amount' => core()->formatBasePrice($this->base_shipping_amount), - 'shipping_invoiced' => $this->shipping_invoiced, - 'formated_shipping_invoiced' => core()->formatPrice($this->shipping_invoiced, $this->order_currency_code), - 'base_shipping_invoiced' => $this->base_shipping_invoiced, - 'formated_base_shipping_invoiced' => core()->formatBasePrice($this->base_shipping_invoiced), - 'shipping_refunded' => $this->shipping_refunded, - 'formated_shipping_refunded' => core()->formatPrice($this->shipping_refunded, $this->order_currency_code), - 'base_shipping_refunded' => $this->base_shipping_refunded, - 'formated_base_shipping_refunded' => core()->formatBasePrice($this->base_shipping_refunded), - 'customer' => $this->when($this->customer_id, new CustomerResource($this->customer)), - 'channel' => $this->when($this->channel_id, new ChannelResource($this->channel)), - 'shipping_address' => new OrderAddress($this->shipping_address), - 'billing_address' => new OrderAddress($this->billing_address), - 'updated_at' => $this->updated_at, - 'items' => OrderItem::collection($this->items), - 'invoices' => Invoice::collection($this->invoices), - 'shipments' => Shipment::collection($this->shipments), - 'created_at' => $this->created_at + 'sub_total' => $this->sub_total, + 'formated_sub_total' => core()->formatPrice($this->sub_total, $this->order_currency_code), + 'base_sub_total' => $this->base_sub_total, + 'formated_base_sub_total' => core()->formatBasePrice($this->base_sub_total), + 'sub_total_invoiced' => $this->sub_total_invoiced, + 'formated_sub_total_invoiced' => core()->formatPrice($this->sub_total_invoiced, $this->order_currency_code), + 'base_sub_total_invoiced' => $this->base_sub_total_invoiced, + 'formated_base_sub_total_invoiced' => core()->formatBasePrice($this->base_sub_total_invoiced), + 'sub_total_refunded' => $this->sub_total_refunded, + 'formated_sub_total_refunded' => core()->formatPrice($this->sub_total_refunded, $this->order_currency_code), + 'discount_percent' => $this->discount_percent, + 'discount_amount' => $this->discount_amount, + 'formated_discount_amount' => core()->formatPrice($this->discount_amount, $this->order_currency_code), + 'base_discount_amount' => $this->base_discount_amount, + 'formated_base_discount_amount' => core()->formatBasePrice($this->base_discount_amount), + 'discount_invoiced' => $this->discount_invoiced, + 'formated_discount_invoiced' => core()->formatPrice($this->discount_invoiced, $this->order_currency_code), + 'base_discount_invoiced' => $this->base_discount_invoiced, + 'formated_base_discount_invoiced' => core()->formatBasePrice($this->base_discount_invoiced), + 'discount_refunded' => $this->discount_refunded, + 'formated_discount_refunded' => core()->formatPrice($this->discount_refunded, $this->order_currency_code), + 'base_discount_refunded' => $this->base_discount_refunded, + 'formated_base_discount_refunded' => core()->formatBasePrice($this->base_discount_refunded), + 'tax_amount' => $this->tax_amount, + 'formated_tax_amount' => core()->formatPrice($this->tax_amount, $this->order_currency_code), + 'base_tax_amount' => $this->base_tax_amount, + 'formated_base_tax_amount' => core()->formatBasePrice($this->base_tax_amount), + 'tax_amount_invoiced' => $this->tax_amount_invoiced, + 'formated_tax_amount_invoiced' => core()->formatPrice($this->tax_amount_invoiced, $this->order_currency_code), + 'base_tax_amount_invoiced' => $this->base_tax_amount_invoiced, + 'formated_base_tax_amount_invoiced' => core()->formatBasePrice($this->base_tax_amount_invoiced), + 'tax_amount_refunded' => $this->tax_amount_refunded, + 'formated_tax_amount_refunded' => core()->formatPrice($this->tax_amount_refunded, $this->order_currency_code), + 'base_tax_amount_refunded' => $this->base_tax_amount_refunded, + 'formated_base_tax_amount_refunded' => core()->formatBasePrice($this->base_tax_amount_refunded), + 'shipping_amount' => $this->shipping_amount, + 'formated_shipping_amount' => core()->formatPrice($this->shipping_amount, $this->order_currency_code), + 'base_shipping_amount' => $this->base_shipping_amount, + 'formated_base_shipping_amount' => core()->formatBasePrice($this->base_shipping_amount), + 'shipping_invoiced' => $this->shipping_invoiced, + 'formated_shipping_invoiced' => core()->formatPrice($this->shipping_invoiced, $this->order_currency_code), + 'base_shipping_invoiced' => $this->base_shipping_invoiced, + 'formated_base_shipping_invoiced' => core()->formatBasePrice($this->base_shipping_invoiced), + 'shipping_refunded' => $this->shipping_refunded, + 'formated_shipping_refunded' => core()->formatPrice($this->shipping_refunded, $this->order_currency_code), + 'base_shipping_refunded' => $this->base_shipping_refunded, + 'formated_base_shipping_refunded' => core()->formatBasePrice($this->base_shipping_refunded), + 'customer' => $this->when($this->customer_id, new CustomerResource($this->customer)), + 'channel' => $this->when($this->channel_id, new ChannelResource($this->channel)), + 'shipping_address' => new OrderAddress($this->shipping_address), + 'billing_address' => new OrderAddress($this->billing_address), + 'updated_at' => $this->updated_at, + 'items' => OrderItem::collection($this->items), + 'invoices' => Invoice::collection($this->invoices), + 'shipments' => Shipment::collection($this->shipments), + 'created_at' => $this->created_at, ]; } } \ No newline at end of file diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index fc353e670..91adf7615 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -98,7 +98,8 @@ class Cart TaxCategoryRepository $taxCategoryRepository, WishlistRepository $wishlistRepository, CustomerAddressRepository $customerAddressRepository - ) { + ) + { $this->cartRepository = $cartRepository; $this->cartItemRepository = $cartItemRepository; @@ -151,7 +152,7 @@ class Cart if (is_string($cartProducts)) { $this->collectTotals(); - if (!count($cart->all_items) > 0) { + if (! count($cart->all_items) > 0) { session()->forget('cart'); } @@ -166,7 +167,7 @@ class Cart $cartProduct['parent_id'] = $parentCartItem->id; } - if (!$cartItem) { + if (! $cartItem) { $cartItem = $this->cartItemRepository->create(array_merge($cartProduct, ['cart_id' => $cart->id])); } else { if (isset($cartProduct['parent_id']) && $cartItem->parent_id != $parentCartItem->id) { @@ -181,7 +182,7 @@ class Cart } } - if (!$parentCartItem) { + if (! $parentCartItem) { $parentCartItem = $cartItem; } } @@ -225,7 +226,7 @@ class Cart $cart = $this->cartRepository->create($cartData); - if (!$cart) { + if (! $cart) { session()->flash('error', trans('shop::app.checkout.cart.create-error')); return; @@ -248,7 +249,7 @@ class Cart foreach ($data['qty'] as $itemId => $quantity) { $item = $this->cartItemRepository->findOneByField('id', $itemId); - if (!$item) { + if (! $item) { continue; } @@ -260,7 +261,7 @@ class Cart $item->quantity = $quantity; - if (!$this->isItemHaveQuantity($item)) { + if (! $this->isItemHaveQuantity($item)) { throw new \Exception(trans('shop::app.checkout.cart.quantity.inventory_warning')); } @@ -318,7 +319,7 @@ class Cart { Event::dispatch('checkout.cart.delete.before', $itemId); - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return false; } @@ -356,7 +357,7 @@ class Cart $guestCart = session()->get('cart'); //when the logged in customer is not having any of the cart instance previously and are active. - if (!$cart) { + if (! $cart) { $this->cartRepository->update([ 'customer_id' => $this->getCurrentCustomer()->user()->id, 'is_guest' => 0, @@ -375,14 +376,14 @@ class Cart $found = false; foreach ($cart->items as $cartItem) { - if (!$cartItem->product->getTypeInstance()->compareOptions($cartItem->additional, + if (! $cartItem->product->getTypeInstance()->compareOptions($cartItem->additional, $guestCartItem->additional)) { continue; } $cartItem->quantity = $newQuantity = $cartItem->quantity + $guestCartItem->quantity; - if (!$this->isItemHaveQuantity($cartItem)) { + if (! $this->isItemHaveQuantity($cartItem)) { $this->cartItemRepository->delete($guestCartItem->id); continue; @@ -403,7 +404,7 @@ class Cart $found = true; } - if (!$found) { + if (! $found) { $this->cartItemRepository->update([ 'cart_id' => $cart->id, ], $guestCartItem->id); @@ -435,7 +436,7 @@ class Cart */ public function putCart($cart) { - if (!$this->getCurrentCustomer()->check()) { + if (! $this->getCurrentCustomer()->check()) { session()->put('cart', $cart); } } @@ -496,7 +497,7 @@ class Cart */ public function saveCustomerAddress($data) { - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return false; } @@ -579,15 +580,7 @@ class Cart } } - if ($this->getCurrentCustomer()->check()) { - $cart->customer_email = $this->getCurrentCustomer()->user()->email; - $cart->customer_first_name = $this->getCurrentCustomer()->user()->first_name; - $cart->customer_last_name = $this->getCurrentCustomer()->user()->last_name; - } else { - $cart->customer_email = $cart->billing_address->email; - $cart->customer_first_name = $cart->billing_address->first_name; - $cart->customer_last_name = $cart->billing_address->last_name; - } + $this->assignCustomerFields($cart); $cart->save(); @@ -605,7 +598,7 @@ class Cart */ public function saveShippingMethod($shippingMethodCode) { - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return false; } @@ -624,7 +617,7 @@ class Cart */ public function savePaymentMethod($payment) { - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return false; } @@ -650,11 +643,11 @@ class Cart { $validated = $this->validateItems(); - if (!$validated) { + if (! $validated) { return false; } - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return false; } @@ -712,7 +705,7 @@ class Cart */ public function validateItems() { - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return; } @@ -725,7 +718,7 @@ class Cart foreach ($cart->items as $item) { $item->product->getTypeInstance()->validateCartItem($item); - $price = !is_null($item->custom_price) ? $item->custom_price : $item->base_price; + $price = ! is_null($item->custom_price) ? $item->custom_price : $item->base_price; $this->cartItemRepository->update([ 'price' => core()->convertPrice($price), @@ -746,14 +739,14 @@ class Cart */ public function calculateItemsTax(): void { - if (!$cart = $this->getCart()) { + if (! $cart = $this->getCart()) { return; } foreach ($cart->items()->get() as $item) { $taxCategory = $this->taxCategoryRepository->find($item->product->tax_category_id); - if (!$taxCategory) { + if (! $taxCategory) { continue; } @@ -765,7 +758,7 @@ class Cart if ($address === null && auth()->guard('customer')->check()) { $address = auth()->guard('customer')->user()->addresses() - ->where('default_address',1)->first(); + ->where('default_address', 1)->first(); } if ($address === null) { @@ -793,7 +786,7 @@ class Cart if ($rate->state != '' && $rate->state != $address->state) { continue; } - if (!$rate->is_zip) { + if (! $rate->is_zip) { if ($rate->zip_code == '*' || $rate->zip_code == $address->postcode) { $haveTaxRate = true; } @@ -820,9 +813,11 @@ class Cart * Set Item tax to zero. * * @param CartItem $item + * * @return CartItem */ - protected function setItemTaxToZero(CartItem $item): CartItem { + protected function setItemTaxToZero(CartItem $item): CartItem + { $item->tax_percent = 0; $item->tax_amount = 0; $item->base_tax_amount = 0; @@ -841,7 +836,7 @@ class Cart return true; } - if (!$this->isItemsHaveSufficientQuantity()) { + if (! $this->isItemsHaveSufficientQuantity()) { return true; } @@ -856,7 +851,7 @@ class Cart public function isItemsHaveSufficientQuantity() { foreach ($this->getCart()->items as $item) { - if (!$this->isItemHaveQuantity($item)) { + if (! $this->isItemHaveQuantity($item)) { return false; } } @@ -999,11 +994,11 @@ class Cart */ public function moveToCart($wishlistItem) { - if (!$wishlistItem->product->getTypeInstance()->canBeMovedFromWishlistToCart($wishlistItem)) { + if (! $wishlistItem->product->getTypeInstance()->canBeMovedFromWishlistToCart($wishlistItem)) { return false; } - if (!$wishlistItem->additional) { + if (! $wishlistItem->additional) { $wishlistItem->additional = ['product_id' => $wishlistItem->product_id]; } @@ -1021,7 +1016,8 @@ class Cart } /** - * Function to move a already added product to wishlist will run only on customer authentication. + * Function to move a already added product to wishlist will run only on customer + * authentication. * * @param integer $itemId * @@ -1033,7 +1029,7 @@ class Cart $cartItem = $cart->items()->find($itemId); - if (!$cartItem) { + if (! $cartItem) { return false; } @@ -1054,7 +1050,7 @@ class Cart $found = true; } - if (!$found) { + if (! $found) { $this->wishlistRepository->create([ 'channel_id' => $cart->channel_id, 'customer_id' => $this->getCurrentCustomer()->user()->id, @@ -1065,7 +1061,7 @@ class Cart $result = $this->cartItemRepository->delete($itemId); - if (!$cart->items()->count()) { + if (! $cart->items()->count()) { $this->cartRepository->delete($cart->id); } @@ -1107,4 +1103,38 @@ class Cart return $this; } + + /** + * Transfer the user profile information into the cart/into the order. + * + * When logged in as guest or the customer profile is not complete, we use the + * billing address to fill the order customer_ data. + * + * @param \Webkul\Checkout\Models\Cart $cart + */ + private function assignCustomerFields(\Webkul\Checkout\Models\Cart $cart): void + { + if ($this->getCurrentCustomer()->check() + && ($user = $this->getCurrentCustomer()->user()) + && $this->profileIsComplete($user) + ) { + $cart->customer_email = $user->email; + $cart->customer_first_name = $user->first_name; + $cart->customer_last_name = $user->last_name; + } else { + $cart->customer_email = $cart->billing_address->email; + $cart->customer_first_name = $cart->billing_address->first_name; + $cart->customer_last_name = $cart->billing_address->last_name; + } + } + + /** + * @param $user + * + * @return bool + */ + private function profileIsComplete($user): bool + { + return $user->email && $user->first_name && $user->last_name; + } } From 19ebc48fbc944fa456aa93e16a0a2b9411bc0370 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Thu, 5 Mar 2020 15:52:20 +0100 Subject: [PATCH 10/22] further refactoring of Cart Component --- packages/Webkul/Checkout/src/Cart.php | 248 ++++++++++++------ .../Checkout/src/Models/CartAddress.php | 1 + .../Repositories/CartAddressRepository.php | 4 +- .../Webkul/Sales/src/Models/OrderAddress.php | 1 + .../Repositories/OrderAddressRepository.php | 5 +- tests/functional/Checkout/Order/OrderCest.php | 9 + 6 files changed, 184 insertions(+), 84 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 91adf7615..509172bab 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -152,7 +152,7 @@ class Cart if (is_string($cartProducts)) { $this->collectTotals(); - if (! count($cart->all_items) > 0) { + if (count($cart->all_items) <= 0) { session()->forget('cart'); } @@ -493,92 +493,21 @@ class Cart * * @param array $data * - * @return boolean + * @return void is the cart valid */ - public function saveCustomerAddress($data) + public function saveCustomerAddress($data): bool { if (! $cart = $this->getCart()) { return false; } - $billingAddress = $data['billing']; - $billingAddress['cart_id'] = $cart->id; + $billingAddressData = $this->gatherBillingAddress($data, $cart); - if (isset($data['billing']['address_id']) && $data['billing']['address_id']) { - $address = $this->customerAddressRepository->findOneWhere(['id' => $data['billing']['address_id']])->toArray(); + $shippingAddressData = $this->gatherShippingAddress($data, $cart); - $billingAddress['first_name'] = $this->getCurrentCustomer()->user()->first_name; - $billingAddress['last_name'] = $this->getCurrentCustomer()->user()->last_name; - $billingAddress['email'] = $this->getCurrentCustomer()->user()->email; - $billingAddress['address1'] = $address['address1']; - $billingAddress['country'] = $address['country']; - $billingAddress['state'] = $address['state']; - $billingAddress['city'] = $address['city']; - $billingAddress['postcode'] = $address['postcode']; - $billingAddress['phone'] = $address['phone']; - } + $this->saveAddressesWhenRequested($data, $billingAddressData, $shippingAddressData); - if (isset($data['billing']['save_as_address']) && $data['billing']['save_as_address']) { - $billingAddress['customer_id'] = $this->getCurrentCustomer()->user()->id; - $this->customerAddressRepository->create($billingAddress); - } - - if ($cart->haveStockableItems()) { - $shippingAddress = $data['shipping']; - $shippingAddress['cart_id'] = $cart->id; - - if (isset($data['shipping']['address_id']) && $data['shipping']['address_id']) { - $address = $this->customerAddressRepository->findOneWhere(['id' => $data['shipping']['address_id']])->toArray(); - - $shippingAddress['first_name'] = $this->getCurrentCustomer()->user()->first_name; - $shippingAddress['last_name'] = $this->getCurrentCustomer()->user()->last_name; - $shippingAddress['email'] = $this->getCurrentCustomer()->user()->email; - $shippingAddress['address1'] = $address['address1']; - $shippingAddress['country'] = $address['country']; - $shippingAddress['state'] = $address['state']; - $shippingAddress['city'] = $address['city']; - $shippingAddress['postcode'] = $address['postcode']; - $shippingAddress['phone'] = $address['phone']; - } - - if (isset($data['shipping']['save_as_address']) && $data['shipping']['save_as_address']) { - $shippingAddress['customer_id'] = $this->getCurrentCustomer()->user()->id; - - $this->customerAddressRepository->create($shippingAddress); - } - } - - if ($billingAddressModel = $cart->billing_address) { - $this->cartAddressRepository->update($billingAddress, $billingAddressModel->id); - - if ($cart->haveStockableItems()) { - if ($shippingAddressModel = $cart->shipping_address) { - if (isset($billingAddress['use_for_shipping']) && $billingAddress['use_for_shipping']) { - $this->cartAddressRepository->update($billingAddress, $shippingAddressModel->id); - } else { - $this->cartAddressRepository->update($shippingAddress, $shippingAddressModel->id); - } - } else { - if (isset($billingAddress['use_for_shipping']) && $billingAddress['use_for_shipping']) { - $this->cartAddressRepository->create(array_merge($billingAddress, - ['address_type' => 'shipping'])); - } else { - $this->cartAddressRepository->create(array_merge($shippingAddress, - ['address_type' => 'shipping'])); - } - } - } - } else { - $this->cartAddressRepository->create(array_merge($billingAddress, ['address_type' => 'billing'])); - - if ($cart->haveStockableItems()) { - if (isset($billingAddress['use_for_shipping']) && $billingAddress['use_for_shipping']) { - $this->cartAddressRepository->create(array_merge($billingAddress, ['address_type' => 'shipping'])); - } else { - $this->cartAddressRepository->create(array_merge($shippingAddress, ['address_type' => 'shipping'])); - } - } - } + $this->linkAddresses($cart, $billingAddressData, $shippingAddressData); $this->assignCustomerFields($cart); @@ -596,7 +525,7 @@ class Cart * * @return boolean */ - public function saveShippingMethod($shippingMethodCode) + public function saveShippingMethod($shippingMethodCode): bool { if (! $cart = $this->getCart()) { return false; @@ -935,6 +864,7 @@ class Cart 'shipping_discount_amount' => $data['selected_shipping_rate']['discount_amount'], 'base_shipping_discount_amount' => $data['selected_shipping_rate']['base_discount_amount'], ]); + } foreach ($data['items'] as $item) { @@ -1137,4 +1067,164 @@ class Cart { return $user->email && $user->first_name && $user->last_name; } + + /** + * @return array + */ + private function fillCustomerAttributes(): array + { + $attributes = []; + + $user = $this->getCurrentCustomer()->user(); + + if ($user) { + $attributes['first_name'] = $user->first_name; + $attributes['last_name'] = $user->last_name; + $attributes['email'] = $user->email; + $attributes['customer_id'] = $user->id; + } + + return $attributes; + } + + /** + * @return array + */ + private function fillAddressAttributes(array $addressAttributes): array + { + $attributes = []; + + $attributes['address1'] = $addressAttributes['address1']; + $attributes['country'] = $addressAttributes['country']; + $attributes['state'] = $addressAttributes['state']; + $attributes['city'] = $addressAttributes['city']; + $attributes['postcode'] = $addressAttributes['postcode']; + $attributes['phone'] = $addressAttributes['phone']; + + return $attributes; + } + + /** + * @param array $data + * @param array $billingAddress + * @param array $shippingAddress + */ + private function saveAddressesWhenRequested( + array $data, + array $billingAddress, + array $shippingAddress + ): void + { + if (isset($data['billing']['save_as_address']) && $data['billing']['save_as_address']) { + $this->customerAddressRepository->create($billingAddress); + } + + if (isset($data['shipping']['save_as_address']) && $data['shipping']['save_as_address']) { + $this->customerAddressRepository->create($shippingAddress); + } + } + + /** + * @param $data + * @param $cart + * + * @return array + */ + private function gatherBillingAddress($data, \Webkul\Checkout\Models\Cart $cart): array + { + $customerAddress = []; + + if (isset($data['billing']['address_id']) && $data['billing']['address_id']) { + $customerAddress = $this + ->customerAddressRepository + ->findOneWhere(['id' => $data['billing']['address_id']]) + ->toArray(); + } + + $billingAddress = array_merge( + $customerAddress, + $data['billing'], + ['cart_id' => $cart->id], + $this->fillCustomerAttributes(), + $this->fillAddressAttributes($data['billing']) + ); + + return $billingAddress; + } + + /** + * @param $data + * @param \Webkul\Checkout\Cart|null $cart + * + * @return array + */ + private function gatherShippingAddress($data, \Webkul\Checkout\Models\Cart $cart): array + { + $customerAddress = []; + + if (isset($data['shipping']['address_id']) && $data['shipping']['address_id']) { + $customerAddress = $this + ->customerAddressRepository + ->findOneWhere(['id' => $data['shipping']['address_id']]) + ->toArray(); + } + + $shippingAddress = array_merge( + $customerAddress, + $data['shipping'], + ['cart_id' => $cart->id], + $this->fillCustomerAttributes(), + $this->fillAddressAttributes($data['shipping']) + ); + + return $shippingAddress; + } + + /** + * @param \Webkul\Checkout\Cart|null $cart + * @param array $billingAddressData + * @param array $shippingAddressData + * + * @throws \Prettus\Validator\Exceptions\ValidatorException + */ + private function linkAddresses( + \Webkul\Checkout\Models\Cart $cart, + array $billingAddressData, + array $shippingAddressData + ): void + { + $billingAddressModel = $cart->billing_address; + if ($billingAddressModel) { + $this->cartAddressRepository->update($billingAddressData, $billingAddressModel->id); + + if ($cart->haveStockableItems()) { + $shippingAddressModel = $cart->shipping_address; + if ($shippingAddressModel) { + if (isset($billingAddressData['use_for_shipping']) && $billingAddressData['use_for_shipping']) { + $this->cartAddressRepository->update($billingAddressData, $shippingAddressModel->id); + } else { + $this->cartAddressRepository->update($shippingAddressData, $shippingAddressModel->id); + } + } else { + if (isset($billingAddressData['use_for_shipping']) && $billingAddressData['use_for_shipping']) { + $this->cartAddressRepository->create(array_merge($billingAddressData, + ['address_type' => 'shipping'])); + } else { + $this->cartAddressRepository->create(array_merge($shippingAddressData, + ['address_type' => 'shipping'])); + } + } + } + } else { + $this->cartAddressRepository->create(array_merge($billingAddressData, ['address_type' => 'billing'])); + + if ($cart->haveStockableItems()) { + if (isset($billingAddressData['use_for_shipping']) && $billingAddressData['use_for_shipping']) { + $this->cartAddressRepository->create(array_merge($billingAddressData, ['address_type' => 'shipping'])); + } else { + $this->cartAddressRepository->create(array_merge($shippingAddressData, ['address_type' => 'shipping'])); + } + } + } + } } diff --git a/packages/Webkul/Checkout/src/Models/CartAddress.php b/packages/Webkul/Checkout/src/Models/CartAddress.php index 737632589..ab1851a62 100755 --- a/packages/Webkul/Checkout/src/Models/CartAddress.php +++ b/packages/Webkul/Checkout/src/Models/CartAddress.php @@ -23,6 +23,7 @@ class CartAddress extends Model implements CartAddressContract 'phone', 'address_type', 'cart_id', + 'customer_id', ]; /** diff --git a/packages/Webkul/Checkout/src/Repositories/CartAddressRepository.php b/packages/Webkul/Checkout/src/Repositories/CartAddressRepository.php index 8118e09a0..da6066670 100755 --- a/packages/Webkul/Checkout/src/Repositories/CartAddressRepository.php +++ b/packages/Webkul/Checkout/src/Repositories/CartAddressRepository.php @@ -5,7 +5,7 @@ namespace Webkul\Checkout\Repositories; use Webkul\Core\Eloquent\Repository; /** - * Cart Address Reposotory + * Cart Address Repository * * @author Prashant Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) @@ -16,7 +16,7 @@ class CartAddressRepository extends Repository /** * Specify Model class name * - * @return Mixed + * @return string */ function model() { diff --git a/packages/Webkul/Sales/src/Models/OrderAddress.php b/packages/Webkul/Sales/src/Models/OrderAddress.php index 0b5f5b89c..d1bcddc62 100755 --- a/packages/Webkul/Sales/src/Models/OrderAddress.php +++ b/packages/Webkul/Sales/src/Models/OrderAddress.php @@ -3,6 +3,7 @@ namespace Webkul\Sales\Models; use Illuminate\Database\Eloquent\Model; +use Webkul\Customer\Models\Customer; use Webkul\Sales\Contracts\OrderAddress as OrderAddressContract; class OrderAddress extends Model implements OrderAddressContract diff --git a/packages/Webkul/Sales/src/Repositories/OrderAddressRepository.php b/packages/Webkul/Sales/src/Repositories/OrderAddressRepository.php index 2cfab190f..b4e321649 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderAddressRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderAddressRepository.php @@ -2,12 +2,11 @@ namespace Webkul\Sales\Repositories; -use Illuminate\Container\Container as App; use Webkul\Core\Eloquent\Repository; use Webkul\Sales\Contracts\OrderAddress; /** - * Order Address Reposotory + * Order Address Repository * * @author Jitendra Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) @@ -18,7 +17,7 @@ class OrderAddressRepository extends Repository /** * Specify Model class name * - * @return Mixed + * @return string */ function model() diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index be0ae2335..9402bee18 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -66,14 +66,21 @@ class OrderCest $I->seeResponseCodeIsSuccessful(); + // assert with the data from the customer model: + $addressData['first_name'] = $mocks['customer']->first_name; + $addressData['last_name'] = $mocks['customer']->last_name; + $addressData['email'] = $mocks['customer']->email; + $I->seeRecord(CartAddress::class, array_merge($addressData, [ 'address_type' => 'shipping', 'cart_id' => $mocks['cart']->id, + 'customer_id' => $mocks['customer']->id, ])); $I->seeRecord(CartAddress::class, array_merge($addressData, [ 'address_type' => 'billing', 'cart_id' => $mocks['cart']->id, + 'customer_id' => $mocks['customer']->id, ])); $I->sendAjaxPostRequest(route('shop.checkout.save-shipping'), [ @@ -127,11 +134,13 @@ class OrderCest $I->seeRecord(OrderAddress::class, array_merge($addressData, [ 'order_id' => $order->id, 'address_type' => 'shipping', + 'customer_id' => $mocks['customer']->id, ])); $I->seeRecord(OrderAddress::class, array_merge($addressData, [ 'order_id' => $order->id, 'address_type' => 'billing', + 'customer_id' => $mocks['customer']->id, ])); $I->seeRecord(OrderPayment::class, [ From 7c634046db7e1ee8fff14022f934fd84b129813e Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Thu, 5 Mar 2020 16:00:21 +0100 Subject: [PATCH 11/22] add ?? operator in case address data fails --- packages/Webkul/Checkout/src/Cart.php | 12 +++++------ tests/functional/Shop/CartTaxesCest.php | 28 ++++++++++++------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 509172bab..e1c38b55b 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -1094,12 +1094,12 @@ class Cart { $attributes = []; - $attributes['address1'] = $addressAttributes['address1']; - $attributes['country'] = $addressAttributes['country']; - $attributes['state'] = $addressAttributes['state']; - $attributes['city'] = $addressAttributes['city']; - $attributes['postcode'] = $addressAttributes['postcode']; - $attributes['phone'] = $addressAttributes['phone']; + $attributes['address1'] = $addressAttributes['address1'] ?? ''; + $attributes['country'] = $addressAttributes['country'] ?? ''; + $attributes['state'] = $addressAttributes['state'] ?? ''; + $attributes['city'] = $addressAttributes['city'] ?? ''; + $attributes['postcode'] = $addressAttributes['postcode'] ?? ''; + $attributes['phone'] = $addressAttributes['phone'] ?? ''; return $attributes; } diff --git a/tests/functional/Shop/CartTaxesCest.php b/tests/functional/Shop/CartTaxesCest.php index 6e474fe16..a0ead79cc 100644 --- a/tests/functional/Shop/CartTaxesCest.php +++ b/tests/functional/Shop/CartTaxesCest.php @@ -26,19 +26,19 @@ class CartTaxesCest $tax1 = $I->have(TaxRate::class, [ 'country' => $this->country, ]); - $taxCategorie1 = $I->have(TaxCategory::class); + $taxCategory1 = $I->have(TaxCategory::class); $I->have(TaxMap::class, [ 'tax_rate_id' => $tax1->id, - 'tax_category_id' => $taxCategorie1->id, + 'tax_category_id' => $taxCategory1->id, ]); $tax2 = $I->have(TaxRate::class, [ 'country' => $this->country, ]); - $taxCategorie2 = $I->have(TaxCategory::class); + $taxCategory2 = $I->have(TaxCategory::class); $I->have(TaxMap::class, [ 'tax_rate_id' => $tax2->id, - 'tax_category_id' => $taxCategorie2->id, + 'tax_category_id' => $taxCategory2->id, ]); $config1 = [ @@ -46,7 +46,7 @@ class CartTaxesCest 'attributeValues' => [ 'status' => true, 'new' => 1, - 'tax_category_id' => $taxCategorie1->id, + 'tax_category_id' => $taxCategory1->id, ], ]; $product1 = $I->haveProduct(Laravel5Helper::SIMPLE_PRODUCT, $config1); @@ -56,7 +56,7 @@ class CartTaxesCest 'attributeValues' => [ 'status' => true, 'new' => 1, - 'tax_category_id' => $taxCategorie2->id, + 'tax_category_id' => $taxCategory2->id, ], ]; $product2 = $I->haveProduct(Laravel5Helper::SIMPLE_PRODUCT, $config2); @@ -158,15 +158,15 @@ class CartTaxesCest 'tax_rate' => $I->fake()->randomFloat(2, 3, 8), ]); - $taxCategorie1 = $I->have(TaxCategory::class); + $taxCategory1 = $I->have(TaxCategory::class); $I->have(TaxMap::class, [ 'tax_rate_id' => $tax11->id, - 'tax_category_id' => $taxCategorie1->id, + 'tax_category_id' => $taxCategory1->id, ]); $I->have(TaxMap::class, [ 'tax_rate_id' => $tax12->id, - 'tax_category_id' => $taxCategorie1->id, + 'tax_category_id' => $taxCategory1->id, ]); $tax21 = $I->have(TaxRate::class, [ @@ -186,15 +186,15 @@ class CartTaxesCest 'tax_rate' => $I->fake()->randomFloat(2, 14, 25), ]); - $taxCategorie2 = $I->have(TaxCategory::class); + $taxCategory2 = $I->have(TaxCategory::class); $I->have(TaxMap::class, [ 'tax_rate_id' => $tax21->id, - 'tax_category_id' => $taxCategorie2->id, + 'tax_category_id' => $taxCategory2->id, ]); $I->have(TaxMap::class, [ 'tax_rate_id' => $tax22->id, - 'tax_category_id' => $taxCategorie2->id, + 'tax_category_id' => $taxCategory2->id, ]); $config1 = [ @@ -202,7 +202,7 @@ class CartTaxesCest 'attributeValues' => [ 'status' => true, 'new' => 1, - 'tax_category_id' => $taxCategorie1->id, + 'tax_category_id' => $taxCategory1->id, ], ]; $product1 = $I->haveProduct(Laravel5Helper::SIMPLE_PRODUCT, $config1); @@ -212,7 +212,7 @@ class CartTaxesCest 'attributeValues' => [ 'status' => true, 'new' => 1, - 'tax_category_id' => $taxCategorie2->id, + 'tax_category_id' => $taxCategory2->id, ], ]; $product2 = $I->haveProduct(Laravel5Helper::SIMPLE_PRODUCT, $config2); From e40d3ec619a818a44ef6c574a84c594d2be732ea Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Thu, 5 Mar 2020 16:16:17 +0100 Subject: [PATCH 12/22] fill in correct address attributes --- packages/Webkul/Checkout/src/Cart.php | 15 +++++++++------ tests/functional/Checkout/Order/OrderCest.php | 5 ----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index e1c38b55b..f75e35d75 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -2,6 +2,7 @@ namespace Webkul\Checkout; +use Webkul\Checkout\Models\CartAddress; use Webkul\Checkout\Repositories\CartRepository; use Webkul\Checkout\Repositories\CartItemRepository; use Webkul\Checkout\Repositories\CartAddressRepository; @@ -1094,12 +1095,13 @@ class Cart { $attributes = []; - $attributes['address1'] = $addressAttributes['address1'] ?? ''; - $attributes['country'] = $addressAttributes['country'] ?? ''; - $attributes['state'] = $addressAttributes['state'] ?? ''; - $attributes['city'] = $addressAttributes['city'] ?? ''; - $attributes['postcode'] = $addressAttributes['postcode'] ?? ''; - $attributes['phone'] = $addressAttributes['phone'] ?? ''; + $cartAddress = new CartAddress(); + + foreach ($cartAddress->getFillable() as $attribute) { + if (isset($addressAttributes[$attribute])) { + $attributes[$attribute] = $addressAttributes[$attribute]; + } + } return $attributes; } @@ -1149,6 +1151,7 @@ class Cart $this->fillAddressAttributes($data['billing']) ); + return $billingAddress; } diff --git a/tests/functional/Checkout/Order/OrderCest.php b/tests/functional/Checkout/Order/OrderCest.php index 9402bee18..2cf903895 100644 --- a/tests/functional/Checkout/Order/OrderCest.php +++ b/tests/functional/Checkout/Order/OrderCest.php @@ -66,11 +66,6 @@ class OrderCest $I->seeResponseCodeIsSuccessful(); - // assert with the data from the customer model: - $addressData['first_name'] = $mocks['customer']->first_name; - $addressData['last_name'] = $mocks['customer']->last_name; - $addressData['email'] = $mocks['customer']->email; - $I->seeRecord(CartAddress::class, array_merge($addressData, [ 'address_type' => 'shipping', 'cart_id' => $mocks['cart']->id, From e20bb9cc978dddfc9d554c02f668ecd586720c77 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 10 Mar 2020 10:00:04 +0100 Subject: [PATCH 13/22] remove <<< Date: Tue, 10 Mar 2020 10:24:26 +0100 Subject: [PATCH 14/22] generate uuid instead of word in AttributeFamilyCest.php to avoid randomly failing test --- tests/functional/Admin/Catalog/AttributeFamilyCest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/functional/Admin/Catalog/AttributeFamilyCest.php b/tests/functional/Admin/Catalog/AttributeFamilyCest.php index 9c17e02d6..9a3ed6da1 100644 --- a/tests/functional/Admin/Catalog/AttributeFamilyCest.php +++ b/tests/functional/Admin/Catalog/AttributeFamilyCest.php @@ -74,8 +74,8 @@ class AttributeFamilyCest private function fillForm(FunctionalTester $I): array { $testData = [ - 'code' => $I->fake()->word, - 'name' => $I->fake()->word, + 'code' => $I->fake()->uuid, + 'name' => $I->fake()->sentence, ]; $I->fillField('code', $testData['code']); From 00e351ce301e6641eca30c8eaaef208bc29a61c8 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 10 Mar 2020 10:55:30 +0100 Subject: [PATCH 15/22] adjust code generation to how it should be in AttributeFamilyCest.php --- tests/functional/Admin/Catalog/AttributeFamilyCest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/functional/Admin/Catalog/AttributeFamilyCest.php b/tests/functional/Admin/Catalog/AttributeFamilyCest.php index 9a3ed6da1..60a20db72 100644 --- a/tests/functional/Admin/Catalog/AttributeFamilyCest.php +++ b/tests/functional/Admin/Catalog/AttributeFamilyCest.php @@ -74,7 +74,8 @@ class AttributeFamilyCest private function fillForm(FunctionalTester $I): array { $testData = [ - 'code' => $I->fake()->uuid, + // code needs to match to: '/^[a-zA-Z]+[a-zA-Z0-9_]+$/' + 'code' => $I->fake()->word . strtr($I->fake()->uuid, ['-' => '_']), 'name' => $I->fake()->sentence, ]; From f6305b94eb56e2f7f0ba5359bbc3f2018003b9ad Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 10 Mar 2020 11:35:11 +0100 Subject: [PATCH 16/22] update composer.lock --- composer.lock | 327 +++++++++++++++++++++++++------------------------- 1 file changed, 163 insertions(+), 164 deletions(-) diff --git a/composer.lock b/composer.lock index f3f569f11..259dad16d 100644 --- a/composer.lock +++ b/composer.lock @@ -8,27 +8,27 @@ "packages": [ { "name": "astrotomic/laravel-translatable", - "version": "11.7.1", + "version": "v11.8.0", "source": { "type": "git", "url": "https://github.com/Astrotomic/laravel-translatable.git", - "reference": "d454ca5d73515a0878ed8b1f8df7e0510d351d2c" + "reference": "8bd84a30381dfd9e2e1f24252b54279899959a7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/d454ca5d73515a0878ed8b1f8df7e0510d351d2c", - "reference": "d454ca5d73515a0878ed8b1f8df7e0510d351d2c", + "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/8bd84a30381dfd9e2e1f24252b54279899959a7b", + "reference": "8bd84a30381dfd9e2e1f24252b54279899959a7b", "shasum": "" }, "require": { - "illuminate/contracts": "5.8.* || ^6.0", - "illuminate/database": "5.8.* || ^6.0", - "illuminate/support": "5.8.* || ^6.0", + "illuminate/contracts": "5.8.* || ^6.0 || ^7.0", + "illuminate/database": "5.8.* || ^6.0 || ^7.0", + "illuminate/support": "5.8.* || ^6.0 || ^7.0", "php": ">=7.2" }, "require-dev": { - "orchestra/testbench": "3.8.* || ^4.0", - "phpunit/phpunit": "^8.0" + "orchestra/testbench": "3.8.* || ^4.0 || ^5.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { @@ -50,7 +50,7 @@ "authors": [ { "name": "Tom Witkowski", - "email": "dev.gummibeer@gmail.com", + "email": "gummibeer@astrotomic.info", "homepage": "https://gummibeer.de", "role": "Developer" }, @@ -62,13 +62,14 @@ } ], "description": "A Laravel package for multilingual models", + "homepage": "https://astrotomic.info", "keywords": [ "database", "language", "laravel", "translation" ], - "time": "2020-02-27T11:09:11+00:00" + "time": "2020-03-03T10:43:26+00:00" }, { "name": "barryvdh/laravel-dompdf", @@ -1079,21 +1080,21 @@ }, { "name": "intervention/imagecache", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/Intervention/imagecache.git", - "reference": "d73f4a69e000fd21bcd54559b94546f180abce68" + "reference": "2fae78a3f299597c5179740f9e70b4f5e367b350" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/imagecache/zipball/d73f4a69e000fd21bcd54559b94546f180abce68", - "reference": "d73f4a69e000fd21bcd54559b94546f180abce68", + "url": "https://api.github.com/repos/Intervention/imagecache/zipball/2fae78a3f299597c5179740f9e70b4f5e367b350", + "reference": "2fae78a3f299597c5179740f9e70b4f5e367b350", "shasum": "" }, "require": { - "illuminate/cache": "~4|~5|~6", - "illuminate/filesystem": "~4|~5|~6", + "illuminate/cache": "~4|~5|~6|~7", + "illuminate/filesystem": "~4|~5|~6|~7", "intervention/image": "dev-master|~2,>=2.2.0", "jeremeamia/superclosure": "~1|~2", "nesbot/carbon": "^1.26.3 || ^2.0", @@ -1129,7 +1130,7 @@ "imagick", "laravel" ], - "time": "2019-09-03T16:35:20+00:00" + "time": "2020-03-03T19:18:15+00:00" }, { "name": "jakub-onderka/php-console-color", @@ -1443,25 +1444,25 @@ }, { "name": "konekt/enum-eloquent", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/artkonekt/enum-eloquent.git", - "reference": "79886ff824697bb577dad9910a9dc497ec0b8d26" + "reference": "ece65ed54a5ba78265f5b91090e9c33621e6e43b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/artkonekt/enum-eloquent/zipball/79886ff824697bb577dad9910a9dc497ec0b8d26", - "reference": "79886ff824697bb577dad9910a9dc497ec0b8d26", + "url": "https://api.github.com/repos/artkonekt/enum-eloquent/zipball/ece65ed54a5ba78265f5b91090e9c33621e6e43b", + "reference": "ece65ed54a5ba78265f5b91090e9c33621e6e43b", "shasum": "" }, "require": { - "illuminate/database": "5.*|6.*", + "illuminate/database": "5.*|6.*|7.*", "konekt/enum": "^2.0.2 || ^3.0.0", "php": "^7.1.3" }, "require-dev": { - "illuminate/events": "5.*|6.*", + "illuminate/events": "5.*|6.*|7.*", "ocramius/package-versions": "^1.2", "phpunit/phpunit": "6.3 - 7.5|~8.0" }, @@ -1507,20 +1508,20 @@ "konekt", "laravel" ], - "time": "2019-11-24T13:23:50+00:00" + "time": "2020-03-05T23:07:16+00:00" }, { "name": "laravel/framework", - "version": "v6.17.1", + "version": "v6.18.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "32d1ed55dd46dcd706ff2e45bb7965be7320b87d" + "reference": "077b895d935b7fbcfb1d1eb34217fa4f80a130d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/32d1ed55dd46dcd706ff2e45bb7965be7320b87d", - "reference": "32d1ed55dd46dcd706ff2e45bb7965be7320b87d", + "url": "https://api.github.com/repos/laravel/framework/zipball/077b895d935b7fbcfb1d1eb34217fa4f80a130d8", + "reference": "077b895d935b7fbcfb1d1eb34217fa4f80a130d8", "shasum": "" }, "require": { @@ -1653,24 +1654,24 @@ "framework", "laravel" ], - "time": "2020-02-26T14:23:01+00:00" + "time": "2020-03-03T13:14:27+00:00" }, { "name": "laravel/helpers", - "version": "v1.1.1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/laravel/helpers.git", - "reference": "b8eae9ddd461e89d0296f74fd069c413bf83b6fa" + "reference": "1f978fc5dad9f7f906b18242c654252615201de4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/helpers/zipball/b8eae9ddd461e89d0296f74fd069c413bf83b6fa", - "reference": "b8eae9ddd461e89d0296f74fd069c413bf83b6fa", + "url": "https://api.github.com/repos/laravel/helpers/zipball/1f978fc5dad9f7f906b18242c654252615201de4", + "reference": "1f978fc5dad9f7f906b18242c654252615201de4", "shasum": "" }, "require": { - "illuminate/support": "~5.8.0|^6.0", + "illuminate/support": "~5.8.0|^6.0|^7.0", "php": ">=7.1.3" }, "require-dev": { @@ -1706,7 +1707,7 @@ "helpers", "laravel" ], - "time": "2019-07-30T15:25:31+00:00" + "time": "2020-03-03T13:52:16+00:00" }, { "name": "laravel/tinker", @@ -1828,16 +1829,16 @@ }, { "name": "league/commonmark", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "4f30be7a2cbf3bfa5788abab71384713e48f451f" + "reference": "8015f806173c6ee54de25a87c2d69736696e88db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4f30be7a2cbf3bfa5788abab71384713e48f451f", - "reference": "4f30be7a2cbf3bfa5788abab71384713e48f451f", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/8015f806173c6ee54de25a87c2d69736696e88db", + "reference": "8015f806173c6ee54de25a87c2d69736696e88db", "shasum": "" }, "require": { @@ -1898,20 +1899,20 @@ "md", "parser" ], - "time": "2020-02-08T23:42:03+00:00" + "time": "2020-02-28T18:53:50+00:00" }, { "name": "league/flysystem", - "version": "1.0.64", + "version": "1.0.65", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "d13c43dbd4b791f815215959105a008515d1a2e0" + "reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d13c43dbd4b791f815215959105a008515d1a2e0", - "reference": "d13c43dbd4b791f815215959105a008515d1a2e0", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8f17b3ba67097aafb8318cd5c553b1acf7c891c8", + "reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8", "shasum": "" }, "require": { @@ -1982,7 +1983,7 @@ "sftp", "storage" ], - "time": "2020-02-05T18:14:17+00:00" + "time": "2020-03-08T18:53:20+00:00" }, { "name": "maatwebsite/excel", @@ -2361,16 +2362,16 @@ }, { "name": "nesbot/carbon", - "version": "2.30.0", + "version": "2.31.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "912dff66d2690ca66abddb9b291a1df5f371d3b4" + "reference": "bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/912dff66d2690ca66abddb9b291a1df5f371d3b4", - "reference": "912dff66d2690ca66abddb9b291a1df5f371d3b4", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d", + "reference": "bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d", "shasum": "" }, "require": { @@ -2427,7 +2428,7 @@ "datetime", "time" ], - "time": "2020-02-07T15:25:46+00:00" + "time": "2020-03-01T11:11:58+00:00" }, { "name": "nikic/php-parser", @@ -2736,16 +2737,16 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.10.1", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "1648dc9ebef6ebe0c5a172e16cf66732918416e0" + "reference": "c2a205e82f9cf1cc9fab86b79e808d86dd680470" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/1648dc9ebef6ebe0c5a172e16cf66732918416e0", - "reference": "1648dc9ebef6ebe0c5a172e16cf66732918416e0", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/c2a205e82f9cf1cc9fab86b79e808d86dd680470", + "reference": "c2a205e82f9cf1cc9fab86b79e808d86dd680470", "shasum": "" }, "require": { @@ -2825,7 +2826,7 @@ "xls", "xlsx" ], - "time": "2019-12-01T23:13:51+00:00" + "time": "2020-03-02T13:09:03+00:00" }, { "name": "phpoption/phpoption", @@ -3494,16 +3495,16 @@ }, { "name": "symfony/console", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f512001679f37e6a042b51897ed24a2f05eba656" + "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", - "reference": "f512001679f37e6a042b51897ed24a2f05eba656", + "url": "https://api.github.com/repos/symfony/console/zipball/4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", + "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", "shasum": "" }, "require": { @@ -3566,20 +3567,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-01-25T12:44:29+00:00" + "time": "2020-02-24T13:10:00+00:00" }, { "name": "symfony/css-selector", - "version": "v5.0.4", + "version": "v5.0.5", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ff60c90cb7950b592ebc84ad1289d0345bf24f9f" + "reference": "a0b51ba9938ccc206d9284de7eb527c2d4550b44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ff60c90cb7950b592ebc84ad1289d0345bf24f9f", - "reference": "ff60c90cb7950b592ebc84ad1289d0345bf24f9f", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/a0b51ba9938ccc206d9284de7eb527c2d4550b44", + "reference": "a0b51ba9938ccc206d9284de7eb527c2d4550b44", "shasum": "" }, "require": { @@ -3619,20 +3620,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2020-01-04T14:08:26+00:00" + "time": "2020-02-04T09:41:09+00:00" }, { "name": "symfony/debug", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "20236471058bbaa9907382500fc14005c84601f0" + "reference": "a980d87a659648980d89193fd8b7a7ca89d97d21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/20236471058bbaa9907382500fc14005c84601f0", - "reference": "20236471058bbaa9907382500fc14005c84601f0", + "url": "https://api.github.com/repos/symfony/debug/zipball/a980d87a659648980d89193fd8b7a7ca89d97d21", + "reference": "a980d87a659648980d89193fd8b7a7ca89d97d21", "shasum": "" }, "require": { @@ -3675,26 +3676,26 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2020-01-25T12:44:29+00:00" + "time": "2020-02-23T14:41:43+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1" + "reference": "89aa4b9ac6f1f35171b8621b24f60477312085be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/d2721499ffcaf246a743e01cdf6696d3d5dd74c1", - "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/89aa4b9ac6f1f35171b8621b24f60477312085be", + "reference": "89aa4b9ac6f1f35171b8621b24f60477312085be", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "^4.4", + "symfony/debug": "^4.4.5", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { @@ -3731,20 +3732,20 @@ ], "description": "Symfony ErrorHandler Component", "homepage": "https://symfony.com", - "time": "2020-01-27T09:48:47+00:00" + "time": "2020-02-26T11:45:31+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" + "reference": "4ad8e149799d3128621a3a1f70e92b9897a8930d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", - "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4ad8e149799d3128621a3a1f70e92b9897a8930d", + "reference": "4ad8e149799d3128621a3a1f70e92b9897a8930d", "shasum": "" }, "require": { @@ -3801,7 +3802,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2020-01-10T21:54:01+00:00" + "time": "2020-02-04T09:32:40+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3863,16 +3864,16 @@ }, { "name": "symfony/finder", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "3a50be43515590faf812fbd7708200aabc327ec3" + "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", - "reference": "3a50be43515590faf812fbd7708200aabc327ec3", + "url": "https://api.github.com/repos/symfony/finder/zipball/ea69c129aed9fdeca781d4b77eb20b62cf5d5357", + "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357", "shasum": "" }, "require": { @@ -3908,20 +3909,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" + "time": "2020-02-14T07:42:58+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5" + "reference": "7e41b4fcad4619535f45f8bfa7744c4f384e1648" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/491a20dfa87e0b3990170593bc2de0bb34d828a5", - "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7e41b4fcad4619535f45f8bfa7744c4f384e1648", + "reference": "7e41b4fcad4619535f45f8bfa7744c4f384e1648", "shasum": "" }, "require": { @@ -3963,20 +3964,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2020-01-31T09:11:17+00:00" + "time": "2020-02-13T19:40:01+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5" + "reference": "8c8734486dada83a6041ab744709bdc1651a8462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/62116a9c8fb15faabb158ad9cb785c353c2572e5", - "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8c8734486dada83a6041ab744709bdc1651a8462", + "reference": "8c8734486dada83a6041ab744709bdc1651a8462", "shasum": "" }, "require": { @@ -4053,20 +4054,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2020-01-31T12:45:06+00:00" + "time": "2020-02-29T10:31:38+00:00" }, { "name": "symfony/mime", - "version": "v5.0.4", + "version": "v5.0.5", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59" + "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/2a3c7fee1f1a0961fa9cf360d5da553d05095e59", - "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59", + "url": "https://api.github.com/repos/symfony/mime/zipball/9b3e5b5e58c56bbd76628c952d2b78556d305f3c", + "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c", "shasum": "" }, "require": { @@ -4115,7 +4116,7 @@ "mime", "mime-type" ], - "time": "2020-01-04T14:08:26+00:00" + "time": "2020-02-04T09:41:09+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4578,16 +4579,16 @@ }, { "name": "symfony/process", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" + "reference": "bf9166bac906c9e69fb7a11d94875e7ced97bcd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", - "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", + "url": "https://api.github.com/repos/symfony/process/zipball/bf9166bac906c9e69fb7a11d94875e7ced97bcd7", + "reference": "bf9166bac906c9e69fb7a11d94875e7ced97bcd7", "shasum": "" }, "require": { @@ -4623,20 +4624,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2020-01-09T09:50:08+00:00" + "time": "2020-02-07T20:06:44+00:00" }, { "name": "symfony/routing", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a" + "reference": "4124d621d0e445732520037f888a0456951bde8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/7bf4e38573728e317b926ca4482ad30470d0e86a", - "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a", + "url": "https://api.github.com/repos/symfony/routing/zipball/4124d621d0e445732520037f888a0456951bde8c", + "reference": "4124d621d0e445732520037f888a0456951bde8c", "shasum": "" }, "require": { @@ -4699,7 +4700,7 @@ "uri", "url" ], - "time": "2020-01-08T17:29:02+00:00" + "time": "2020-02-25T12:41:09+00:00" }, { "name": "symfony/service-contracts", @@ -4761,16 +4762,16 @@ }, { "name": "symfony/translation", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" + "reference": "0a19a77fba20818a969ef03fdaf1602de0546353" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", - "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", + "url": "https://api.github.com/repos/symfony/translation/zipball/0a19a77fba20818a969ef03fdaf1602de0546353", + "reference": "0a19a77fba20818a969ef03fdaf1602de0546353", "shasum": "" }, "require": { @@ -4833,7 +4834,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2020-01-15T13:29:06+00:00" + "time": "2020-02-04T09:32:40+00:00" }, { "name": "symfony/translation-contracts", @@ -4894,16 +4895,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "46b53fd714568af343953c039ff47b67ce8af8d6" + "reference": "2572839911702b0405479410ea7a1334bfab0b96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46b53fd714568af343953c039ff47b67ce8af8d6", - "reference": "46b53fd714568af343953c039ff47b67ce8af8d6", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2572839911702b0405479410ea7a1334bfab0b96", + "reference": "2572839911702b0405479410ea7a1334bfab0b96", "shasum": "" }, "require": { @@ -4966,7 +4967,7 @@ "debug", "dump" ], - "time": "2020-01-25T12:44:29+00:00" + "time": "2020-02-24T13:10:00+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -5019,33 +5020,32 @@ }, { "name": "tymon/jwt-auth", - "version": "1.0.0-rc.5.1", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/tymondesigns/jwt-auth.git", - "reference": "f57a0ff33f20d2a0c3ebc9e13ce8382a83f921a8" + "reference": "d4cf9fd2b98790712d3e6cd1094e5ff018431f19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tymondesigns/jwt-auth/zipball/f57a0ff33f20d2a0c3ebc9e13ce8382a83f921a8", - "reference": "f57a0ff33f20d2a0c3ebc9e13ce8382a83f921a8", + "url": "https://api.github.com/repos/tymondesigns/jwt-auth/zipball/d4cf9fd2b98790712d3e6cd1094e5ff018431f19", + "reference": "d4cf9fd2b98790712d3e6cd1094e5ff018431f19", "shasum": "" }, "require": { - "illuminate/auth": "^5.1|^6", - "illuminate/contracts": "^5.1|^6", - "illuminate/http": "^5.1|^6", - "illuminate/support": "^5.1|^6", + "illuminate/auth": "^5.2|^6|^7", + "illuminate/contracts": "^5.2|^6|^7", + "illuminate/http": "^5.2|^6|^7", + "illuminate/support": "^5.2|^6|^7", "lcobucci/jwt": "^3.2", "namshi/jose": "^7.0", "nesbot/carbon": "^1.0|^2.0", "php": "^5.5.9|^7.0" }, "require-dev": { - "cartalyst/sentinel": "^2|^3", - "illuminate/console": "^5.1|^6", - "illuminate/database": "^5.1|^6", - "illuminate/routing": "^5.1|^6", + "illuminate/console": "^5.2|^6|^7", + "illuminate/database": "^5.2|^6|^7", + "illuminate/routing": "^5.2|^6|^7", "mockery/mockery": ">=0.9.9", "phpunit/phpunit": "~4.8|~6.0" }, @@ -5090,7 +5090,7 @@ "jwt", "laravel" ], - "time": "2020-01-21T13:04:35+00:00" + "time": "2020-03-04T11:21:28+00:00" }, { "name": "vlucas/phpdotenv", @@ -6350,26 +6350,25 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.0.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.2", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "^7.2", + "mockery/mockery": "~1" }, "type": "library", "extra": { @@ -6393,20 +6392,20 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" + "time": "2020-02-18T18:59:58+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.10.2", + "version": "v1.10.3", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { @@ -6456,7 +6455,7 @@ "spy", "stub" ], - "time": "2020-01-20T15:57:02+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { "name": "phpunit/php-code-coverage", @@ -7475,16 +7474,16 @@ }, { "name": "symfony/browser-kit", - "version": "v5.0.4", + "version": "v5.0.5", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "b0294489a7fbb4f3f39c39efe6f0328cb09731b9" + "reference": "6b2a9590a5868f0ce5cbf7af6abe563d1a3930a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/b0294489a7fbb4f3f39c39efe6f0328cb09731b9", - "reference": "b0294489a7fbb4f3f39c39efe6f0328cb09731b9", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/6b2a9590a5868f0ce5cbf7af6abe563d1a3930a3", + "reference": "6b2a9590a5868f0ce5cbf7af6abe563d1a3930a3", "shasum": "" }, "require": { @@ -7530,20 +7529,20 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2020-01-04T14:08:26+00:00" + "time": "2020-02-24T15:05:31+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.0.4", + "version": "v5.0.5", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "439c3c7be4daa569deef0dd1e30cf3562108d062" + "reference": "4368bdd61b83af365b8f23e9616d2a2ed52cbe7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/439c3c7be4daa569deef0dd1e30cf3562108d062", - "reference": "439c3c7be4daa569deef0dd1e30cf3562108d062", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4368bdd61b83af365b8f23e9616d2a2ed52cbe7c", + "reference": "4368bdd61b83af365b8f23e9616d2a2ed52cbe7c", "shasum": "" }, "require": { @@ -7591,20 +7590,20 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2020-01-04T14:08:26+00:00" + "time": "2020-02-29T10:07:09+00:00" }, { "name": "symfony/yaml", - "version": "v5.0.4", + "version": "v5.0.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a" + "reference": "a4b613d7e44f62941adff5a802cff70adee57d3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", - "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a4b613d7e44f62941adff5a802cff70adee57d3f", + "reference": "a4b613d7e44f62941adff5a802cff70adee57d3f", "shasum": "" }, "require": { @@ -7650,7 +7649,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2020-01-21T11:12:28+00:00" + "time": "2020-02-03T13:51:17+00:00" }, { "name": "theseer/tokenizer", From 50f818bc73cf6e90faa5d129718c39c2a1f1df2f Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Thu, 12 Mar 2020 16:32:38 +0100 Subject: [PATCH 17/22] rerun pipeline --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cebb06e16..937881ee3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -52,10 +52,12 @@ Below is an example of a valid Bagisto doc block. Note that the @param attribute * @param string|array $loader * @param \Closure|string|null $concrete * @param bool $shared + * * @return void + * * @throws \Exception */ protected function registerFacades($loader, $concrete = null, $shared = false) { // - } \ No newline at end of file + } From 5b28d754c2de4f87f80e6e4f98d229e5b9afe9f8 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Thu, 12 Mar 2020 16:40:24 +0100 Subject: [PATCH 18/22] rerun pipeline --- CONTRIBUTING.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 937881ee3..e9812567b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -52,9 +52,7 @@ Below is an example of a valid Bagisto doc block. Note that the @param attribute * @param string|array $loader * @param \Closure|string|null $concrete * @param bool $shared - * * @return void - * * @throws \Exception */ protected function registerFacades($loader, $concrete = null, $shared = false) From fd096e7248d1f680e3733c22a6d4915a98abe914 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 17 Mar 2020 14:24:36 +0100 Subject: [PATCH 19/22] stay on phpunit 7.x for a while... --- composer.json | 2 +- composer.lock | 596 ++++++++++++++++++++------------------------------ 2 files changed, 243 insertions(+), 355 deletions(-) diff --git a/composer.json b/composer.json index 1323044ce..fd65e05a9 100755 --- a/composer.json +++ b/composer.json @@ -44,7 +44,7 @@ "filp/whoops": "^2.0", "mockery/mockery": "^1.0", "nunomaduro/collision": "^2.0", - "phpunit/phpunit": "^9.0", + "phpunit/phpunit": "^7.0", "barryvdh/laravel-debugbar": "^3.1", "fzaninotto/faker": "^1.4" }, diff --git a/composer.lock b/composer.lock index c4fef3a13..97d8d137b 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": "9ddc13af747ac1b8deeefebc202fc326", + "content-hash": "a07e6be1ba36d87f79bd8547e7580ac8", "packages": [ { "name": "astrotomic/laravel-translatable", @@ -1339,33 +1339,33 @@ }, { "name": "konekt/concord", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/artkonekt/concord.git", - "reference": "3d13628d45253e1fafe3567729338545a10da047" + "reference": "2d9f7080c35636c0c7b94bb614d1e50942088061" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/artkonekt/concord/zipball/3d13628d45253e1fafe3567729338545a10da047", - "reference": "3d13628d45253e1fafe3567729338545a10da047", + "url": "https://api.github.com/repos/artkonekt/concord/zipball/2d9f7080c35636c0c7b94bb614d1e50942088061", + "reference": "2d9f7080c35636c0c7b94bb614d1e50942088061", "shasum": "" }, "require": { - "illuminate/console": "~5.5|~6.0", - "illuminate/support": "~5.5|~6.0", + "illuminate/console": "~5.5|~6.0|~7.0", + "illuminate/support": "~5.5|~6.0|~7.0", "konekt/enum": "~2.1", "konekt/enum-eloquent": "^1.3.1", - "php": "^7.1.3" + "php": "^7.2" }, "require-dev": { - "orchestra/testbench": "^3.4.2|~4.9", - "phpunit/phpunit": "6.0 - 7.5|~8.0" + "orchestra/testbench": "~3.5|~4.0|~5.0", + "phpunit/phpunit": "6.0 - 7.5|~8.0|~9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" }, "laravel": { "providers": [ @@ -1396,7 +1396,7 @@ } ], "description": "Concord is a Laravel Extension for building modular Laravel Applications", - "time": "2019-11-17T10:30:36+00:00" + "time": "2020-03-13T16:50:52+00:00" }, { "name": "konekt/enum", @@ -2885,26 +2885,27 @@ }, { "name": "prettus/l5-repository", - "version": "2.6.41", + "version": "2.6.42", "source": { "type": "git", "url": "https://github.com/andersao/l5-repository.git", - "reference": "363904bd1d01325223197d3de1ea3f6fc9da2a06" + "reference": "24c473c08ab46759a2ebe8bb1ec6de1d7c9e9d1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/andersao/l5-repository/zipball/363904bd1d01325223197d3de1ea3f6fc9da2a06", - "reference": "363904bd1d01325223197d3de1ea3f6fc9da2a06", + "url": "https://api.github.com/repos/andersao/l5-repository/zipball/24c473c08ab46759a2ebe8bb1ec6de1d7c9e9d1e", + "reference": "24c473c08ab46759a2ebe8bb1ec6de1d7c9e9d1e", "shasum": "" }, "require": { - "illuminate/config": "~5.0|~6.0", - "illuminate/console": "~5.0|~6.0", - "illuminate/database": "~5.0|~6.0", - "illuminate/filesystem": "~5.0|~6.0", - "illuminate/http": "~5.0|~6.0", - "illuminate/pagination": "~5.0|~6.0", - "illuminate/support": "~5.0|~6.0", + "illuminate/config": "~5.0|~6.0|~7.0", + "illuminate/console": "~5.0|~6.0|~7.0", + "illuminate/database": "~5.0|~6.0|~7.0", + "illuminate/filesystem": "~5.0|~6.0|~7.0", + "illuminate/http": "~5.0|~6.0|~7.0", + "illuminate/pagination": "~5.0|~6.0|~7.0", + "illuminate/support": "~5.0|~6.0|~7.0", + "illuminate/validation": "~5.0|~6.0|~7.0", "prettus/laravel-validation": "~1.1|~1.2" }, "suggest": { @@ -2946,25 +2947,25 @@ "model", "repository" ], - "time": "2020-02-05T06:48:26+00:00" + "time": "2020-03-14T18:53:21+00:00" }, { "name": "prettus/laravel-validation", - "version": "1.2.0", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/andersao/laravel-validator.git", - "reference": "5ffa053baae31d11fa34da013b940d85c99ba253" + "reference": "3d43037c2f497df3f8fbf3d8c16954a83c72e530" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/andersao/laravel-validator/zipball/5ffa053baae31d11fa34da013b940d85c99ba253", - "reference": "5ffa053baae31d11fa34da013b940d85c99ba253", + "url": "https://api.github.com/repos/andersao/laravel-validator/zipball/3d43037c2f497df3f8fbf3d8c16954a83c72e530", + "reference": "3d43037c2f497df3f8fbf3d8c16954a83c72e530", "shasum": "" }, "require": { - "illuminate/support": "~5.4|^6.0", - "illuminate/validation": "~5.4|^6.0", + "illuminate/support": "~5.4|^6.0|^7.0", + "illuminate/validation": "~5.4|^6.0|^7.0", "php": ">=5.4.0" }, "type": "library", @@ -2989,7 +2990,7 @@ "service", "validation" ], - "time": "2019-09-11T12:19:42+00:00" + "time": "2020-03-14T19:28:36+00:00" }, { "name": "psr/container", @@ -5284,16 +5285,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.1", + "version": "4.1.2", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "be584da4859baf34e05afd26fe4c587be4787ff0" + "reference": "35224380f3033bd1778765fe3f114e8d1bc9a9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/be584da4859baf34e05afd26fe4c587be4787ff0", - "reference": "be584da4859baf34e05afd26fe4c587be4787ff0", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/35224380f3033bd1778765fe3f114e8d1bc9a9dc", + "reference": "35224380f3033bd1778765fe3f114e8d1bc9a9dc", "shasum": "" }, "require": { @@ -5365,25 +5366,25 @@ "functional testing", "unit testing" ], - "time": "2020-02-19T16:56:20+00:00" + "time": "2020-03-14T16:36:25+00:00" }, { "name": "codeception/lib-asserts", - "version": "1.11.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/Codeception/lib-asserts.git", - "reference": "1fdc310bf857c11d3703ae02689a2e482c71c5ab" + "reference": "74bfe433af24e2f75c6386b9d843ec69029f4337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/1fdc310bf857c11d3703ae02689a2e482c71c5ab", - "reference": "1fdc310bf857c11d3703ae02689a2e482c71c5ab", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/74bfe433af24e2f75c6386b9d843ec69029f4337", + "reference": "74bfe433af24e2f75c6386b9d843ec69029f4337", "shasum": "" }, "require": { - "php": ">=7.2.0 <8.0", - "phpunit/phpunit": "^8.4 | ^9.0" + "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", + "php": ">=5.6.0 <8.0" }, "type": "library", "autoload": { @@ -5410,7 +5411,7 @@ "keywords": [ "codeception" ], - "time": "2020-02-11T10:45:21+00:00" + "time": "2020-02-07T17:47:55+00:00" }, { "name": "codeception/lib-innerbrowser", @@ -5620,21 +5621,23 @@ }, { "name": "codeception/phpunit-wrapper", - "version": "9.0.0", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "8dc5bf6e6a9c011a1030136115697d512edcdc23" + "reference": "bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/8dc5bf6e6a9c011a1030136115697d512edcdc23", - "reference": "8dc5bf6e6a9c011a1030136115697d512edcdc23", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a", + "reference": "bc847bd4f8f6d09012543e2a856f19fe4ecdcf3a", "shasum": "" }, "require": { - "php": ">=7.2", - "phpunit/phpunit": "^9.0" + "phpunit/php-code-coverage": "^6.0", + "phpunit/phpunit": "7.5.*", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0" }, "require-dev": { "codeception/specify": "*", @@ -5643,7 +5646,7 @@ "type": "library", "autoload": { "psr-4": { - "Codeception\\PHPUnit\\": "src/" + "Codeception\\PHPUnit\\": "src\\" } }, "notification-url": "https://packagist.org/downloads/", @@ -5654,30 +5657,28 @@ { "name": "Davert", "email": "davert.php@resend.cc" - }, - { - "name": "Naktibalda" } ], "description": "PHPUnit classes used by Codeception", - "time": "2020-02-07T17:19:08+00:00" + "time": "2019-12-23T06:55:58+00:00" }, { "name": "codeception/stub", - "version": "3.6.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/Codeception/Stub.git", - "reference": "a3ba01414cbee76a1bced9f9b6b169cc8d203880" + "reference": "eea518711d736eab838c1274593c4568ec06b23d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/a3ba01414cbee76a1bced9f9b6b169cc8d203880", - "reference": "a3ba01414cbee76a1bced9f9b6b169cc8d203880", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/eea518711d736eab838c1274593c4568ec06b23d", + "reference": "eea518711d736eab838c1274593c4568ec06b23d", "shasum": "" }, "require": { - "phpunit/phpunit": "^8.4 | ^9.0" + "codeception/phpunit-wrapper": "^6.6.1 | ^7.7.1 | ^8.0.3", + "phpunit/phpunit": ">=6.5 <9.0" }, "type": "library", "autoload": { @@ -5690,7 +5691,7 @@ "MIT" ], "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", - "time": "2020-02-07T18:42:28+00:00" + "time": "2019-08-10T16:20:53+00:00" }, { "name": "doctrine/instantiator", @@ -6463,41 +6464,40 @@ }, { "name": "phpunit/php-code-coverage", - "version": "8.0.1", + "version": "6.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "31e94ccc084025d6abee0585df533eb3a792b96a" + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/31e94ccc084025d6abee0585df533eb3a792b96a", - "reference": "31e94ccc084025d6abee0585df533eb3a792b96a", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.3", - "phpunit/php-file-iterator": "^3.0", - "phpunit/php-text-template": "^2.0", - "phpunit/php-token-stream": "^4.0", - "sebastian/code-unit-reverse-lookup": "^2.0", - "sebastian/environment": "^5.0", - "sebastian/version": "^3.0", - "theseer/tokenizer": "^1.1.3" + "php": "^7.1", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1 || ^4.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.0" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-xdebug": "^2.6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.0-dev" + "dev-master": "6.1-dev" } }, "autoload": { @@ -6523,32 +6523,32 @@ "testing", "xunit" ], - "time": "2020-02-19T13:41:19+00:00" + "time": "2018-10-31T16:06:48+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.0", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a" + "reference": "050bedf145a257b1ff02746c31894800e5122946" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/354d4a5faa7449a377a18b94a2026ca3415e3d7a", - "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -6573,84 +6573,26 @@ "filesystem", "iterator" ], - "time": "2020-02-07T06:05:22+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/7579d5a1ba7f3ac11c80004d205877911315ae7a", - "reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a", - "shasum": "" - }, - "require": { - "php": "^7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.0" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "time": "2020-02-07T06:06:11+00:00" + "time": "2018-09-13T20:33:42+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346" + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/526dc996cc0ebdfa428cd2dfccd79b7b53fee346", - "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { - "php": "^7.3" + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -6672,32 +6614,32 @@ "keywords": [ "template" ], - "time": "2020-02-01T07:43:44+00:00" + "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "3.0.0", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df" + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/4118013a4d0f97356eae8e7fb2f6c6472575d1df", - "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -6721,33 +6663,33 @@ "keywords": [ "timer" ], - "time": "2020-02-07T06:08:11+00:00" + "time": "2019-06-07T04:22:29+00:00" }, { "name": "phpunit/php-token-stream", - "version": "4.0.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe" + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/b2560a0c33f7710e4d7f8780964193e8e8f8effe", - "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -6770,56 +6712,57 @@ "keywords": [ "tokenizer" ], - "time": "2020-02-07T06:19:00+00:00" + "time": "2019-09-17T06:23:10+00:00" }, { "name": "phpunit/phpunit", - "version": "9.0.1", + "version": "7.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "68d7e5b17a6b9461e17c00446caa409863154f76" + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/68d7e5b17a6b9461e17c00446caa409863154f76", - "reference": "68d7e5b17a6b9461e17c00446caa409863154f76", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", + "doctrine/instantiator": "^1.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.3", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^8.0", - "phpunit/php-file-iterator": "^3.0", - "phpunit/php-invoker": "^3.0", - "phpunit/php-text-template": "^2.0", - "phpunit/php-timer": "^3.0", - "sebastian/comparator": "^4.0", - "sebastian/diff": "^4.0", - "sebastian/environment": "^5.0", - "sebastian/exporter": "^4.0", - "sebastian/global-state": "^4.0", - "sebastian/object-enumerator": "^4.0", - "sebastian/resource-operations": "^3.0", - "sebastian/type": "^2.0", - "sebastian/version": "^3.0" + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "php": "^7.1", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpunit/phpunit-mock-objects": "*" }, "require-dev": { "ext-pdo": "*" }, "suggest": { "ext-soap": "*", - "ext-xdebug": "*" + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0" }, "bin": [ "phpunit" @@ -6827,15 +6770,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.0-dev" + "dev-master": "7.5-dev" } }, "autoload": { "classmap": [ "src/" - ], - "files": [ - "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6856,32 +6796,32 @@ "testing", "xunit" ], - "time": "2020-02-13T07:30:12+00:00" + "time": "2020-01-08T08:45:45+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e" + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5b5dbe0044085ac41df47e79d34911a15b96d82e", - "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -6901,34 +6841,34 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2020-02-07T06:20:13+00:00" + "time": "2017-03-04T06:30:41+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8" + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85b3435da967696ed618ff745f32be3ff4a2b8e8", - "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "shasum": "" }, "require": { - "php": "^7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -6941,10 +6881,6 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -6956,6 +6892,10 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -6965,33 +6905,33 @@ "compare", "equality" ], - "time": "2020-02-07T06:08:51+00:00" + "time": "2018-07-12T15:12:46+00:00" }, { "name": "sebastian/diff", - "version": "4.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d" + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c0c26c9188b538bfa985ae10c9f05d278f12060d", - "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^9.0", - "symfony/process": "^4 || ^5" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -7004,13 +6944,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Kore Nordmann", "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], "description": "Diff implementation", @@ -7021,27 +6961,27 @@ "unidiff", "unified diff" ], - "time": "2020-02-07T06:09:38+00:00" + "time": "2019-02-04T06:01:07+00:00" }, { "name": "sebastian/environment", - "version": "5.0.1", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "9bffdefa7810031a165ddd6275da6a2c1f6f2dfb" + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9bffdefa7810031a165ddd6275da6a2c1f6f2dfb", - "reference": "9bffdefa7810031a165ddd6275da6a2c1f6f2dfb", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.5" }, "suggest": { "ext-posix": "*" @@ -7049,7 +6989,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -7074,34 +7014,34 @@ "environment", "hhvm" ], - "time": "2020-02-19T13:40:20+00:00" + "time": "2019-11-20T08:46:58+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.0", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "80c26562e964016538f832f305b2286e1ec29566" + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/80c26562e964016538f832f305b2286e1ec29566", - "reference": "80c26562e964016538f832f305b2286e1ec29566", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "shasum": "" }, "require": { - "php": "^7.3", - "sebastian/recursion-context": "^4.0" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -7141,30 +7081,27 @@ "export", "exporter" ], - "time": "2020-02-07T06:10:52+00:00" + "time": "2019-09-14T09:02:43+00:00" }, { "name": "sebastian/global-state", - "version": "4.0.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72" + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72", - "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", "shasum": "" }, "require": { - "php": "^7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": "^7.0" }, "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^6.0" }, "suggest": { "ext-uopz": "*" @@ -7172,7 +7109,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -7195,34 +7132,34 @@ "keywords": [ "global state" ], - "time": "2020-02-07T06:11:37+00:00" + "time": "2017-04-27T15:39:26+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67516b175550abad905dc952f43285957ef4363" + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67516b175550abad905dc952f43285957ef4363", - "reference": "e67516b175550abad905dc952f43285957ef4363", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": "^7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -7242,32 +7179,32 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2020-02-07T06:12:23+00:00" + "time": "2017-08-03T12:35:26+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7" + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/f4fd0835cabb0d4a6546d9fe291e5740037aa1e7", - "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -7287,32 +7224,32 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2020-02-07T06:19:40+00:00" + "time": "2017-03-29T09:07:27+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cdd86616411fc3062368b720b0425de10bd3d579" + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cdd86616411fc3062368b720b0425de10bd3d579", - "reference": "cdd86616411fc3062368b720b0425de10bd3d579", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "shasum": "" }, "require": { - "php": "^7.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -7325,14 +7262,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -7340,72 +7277,24 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2020-02-07T06:18:20+00:00" + "time": "2017-03-03T06:23:57+00:00" }, { "name": "sebastian/resource-operations", - "version": "3.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98" + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98", - "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "shasum": "" }, "require": { - "php": "^7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2020-02-07T06:13:02+00:00" - }, - { - "name": "sebastian/type", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/9e8f42f740afdea51f5f4e8cec2035580e797ee1", - "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1", - "shasum": "" - }, - "require": { - "php": "^7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" + "php": "^7.1" }, "type": "library", "extra": { @@ -7425,35 +7314,34 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "time": "2020-02-07T06:13:43+00:00" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" }, { "name": "sebastian/version", - "version": "3.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "0411bde656dce64202b39c2f4473993a9081d39e" + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/0411bde656dce64202b39c2f4473993a9081d39e", - "reference": "0411bde656dce64202b39c2f4473993a9081d39e", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": "^7.3" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -7474,7 +7362,7 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2020-01-21T06:36:37+00:00" + "time": "2016-10-03T07:35:21+00:00" }, { "name": "symfony/browser-kit", From e6c3fb050cff45d16f32ecd3cb4f5c4409a01f2a Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Tue, 17 Mar 2020 14:33:48 +0100 Subject: [PATCH 20/22] lock codeception to 4.1.1 --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index fd65e05a9..ae4374109 100755 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ }, "require-dev": { - "codeception/codeception": "^4.0", + "codeception/codeception": "4.1.1", "codeception/module-asserts": "^1.1", "codeception/module-filesystem": "^1.0", "codeception/module-laravel5": "^1.0", diff --git a/composer.lock b/composer.lock index 97d8d137b..fbf4257d3 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": "a07e6be1ba36d87f79bd8547e7580ac8", + "content-hash": "dca322023597f38ef7991bc9d9bdc50f", "packages": [ { "name": "astrotomic/laravel-translatable", @@ -5285,16 +5285,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.2", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "35224380f3033bd1778765fe3f114e8d1bc9a9dc" + "reference": "be584da4859baf34e05afd26fe4c587be4787ff0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/35224380f3033bd1778765fe3f114e8d1bc9a9dc", - "reference": "35224380f3033bd1778765fe3f114e8d1bc9a9dc", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/be584da4859baf34e05afd26fe4c587be4787ff0", + "reference": "be584da4859baf34e05afd26fe4c587be4787ff0", "shasum": "" }, "require": { @@ -5366,7 +5366,7 @@ "functional testing", "unit testing" ], - "time": "2020-03-14T16:36:25+00:00" + "time": "2020-02-19T16:56:20+00:00" }, { "name": "codeception/lib-asserts", From 4f375648cc4df87998460f13d41696a11997309f Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Wed, 18 Mar 2020 08:05:19 +0100 Subject: [PATCH 21/22] remove lock of codeception to 4.1.1 (4.1.3 has been released yesterday which fixes the bug) --- composer.json | 2 +- composer.lock | 44 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/composer.json b/composer.json index ae4374109..fd65e05a9 100755 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ }, "require-dev": { - "codeception/codeception": "4.1.1", + "codeception/codeception": "^4.0", "codeception/module-asserts": "^1.1", "codeception/module-filesystem": "^1.0", "codeception/module-laravel5": "^1.0", diff --git a/composer.lock b/composer.lock index fbf4257d3..a5ac2e6c7 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": "dca322023597f38ef7991bc9d9bdc50f", + "content-hash": "a07e6be1ba36d87f79bd8547e7580ac8", "packages": [ { "name": "astrotomic/laravel-translatable", @@ -1512,16 +1512,16 @@ }, { "name": "laravel/framework", - "version": "v6.18.1", + "version": "v6.18.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "367c2c8dfdfe83cb2ddbc029c0222174098d093a" + "reference": "9425a2f410d05d5bba493f62cff03854a8b19559" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/367c2c8dfdfe83cb2ddbc029c0222174098d093a", - "reference": "367c2c8dfdfe83cb2ddbc029c0222174098d093a", + "url": "https://api.github.com/repos/laravel/framework/zipball/9425a2f410d05d5bba493f62cff03854a8b19559", + "reference": "9425a2f410d05d5bba493f62cff03854a8b19559", "shasum": "" }, "require": { @@ -1606,7 +1606,7 @@ "ext-memcached": "Required to use the memcache cache driver.", "ext-pcntl": "Required to use all features of the queue worker.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "filp/whoops": "Required for friendly error pages in development (^2.4).", "fzaninotto/faker": "Required to use the eloquent factory builder (^1.9.1).", "guzzlehttp/guzzle": "Required to use the Mailgun mail driver and the ping methods on schedules (^6.0|^7.0).", @@ -1654,7 +1654,7 @@ "framework", "laravel" ], - "time": "2020-03-10T14:11:04+00:00" + "time": "2020-03-17T17:08:02+00:00" }, { "name": "laravel/helpers", @@ -1903,16 +1903,16 @@ }, { "name": "league/flysystem", - "version": "1.0.65", + "version": "1.0.66", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8" + "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8f17b3ba67097aafb8318cd5c553b1acf7c891c8", - "reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/021569195e15f8209b1c4bebb78bd66aa4f08c21", + "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21", "shasum": "" }, "require": { @@ -1983,7 +1983,7 @@ "sftp", "storage" ], - "time": "2020-03-08T18:53:20+00:00" + "time": "2020-03-17T18:58:12+00:00" }, { "name": "maatwebsite/excel", @@ -5226,16 +5226,16 @@ }, { "name": "behat/gherkin", - "version": "v4.6.1", + "version": "v4.6.2", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759" + "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/25bdcaf37898b4a939fa3031d5d753ced97e4759", - "reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", + "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", "shasum": "" }, "require": { @@ -5281,20 +5281,20 @@ "gherkin", "parser" ], - "time": "2020-02-27T11:29:57+00:00" + "time": "2020-03-17T14:03:26+00:00" }, { "name": "codeception/codeception", - "version": "4.1.1", + "version": "4.1.3", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "be584da4859baf34e05afd26fe4c587be4787ff0" + "reference": "c30e2abe4af327d8be4fb23446ff740fec76fd60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/be584da4859baf34e05afd26fe4c587be4787ff0", - "reference": "be584da4859baf34e05afd26fe4c587be4787ff0", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/c30e2abe4af327d8be4fb23446ff740fec76fd60", + "reference": "c30e2abe4af327d8be4fb23446ff740fec76fd60", "shasum": "" }, "require": { @@ -5366,7 +5366,7 @@ "functional testing", "unit testing" ], - "time": "2020-02-19T16:56:20+00:00" + "time": "2020-03-17T16:48:30+00:00" }, { "name": "codeception/lib-asserts", From 985d5bfb2e9f86fcb0ff54fec74fcfe739676047 Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Wed, 18 Mar 2020 08:09:05 +0100 Subject: [PATCH 22/22] Unfortunately it does _not_ yet fix the bug. Release the lock of codeception later when fixed... This reverts commit 4f375648cc4df87998460f13d41696a11997309f. --- composer.json | 2 +- composer.lock | 44 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/composer.json b/composer.json index fd65e05a9..ae4374109 100755 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ }, "require-dev": { - "codeception/codeception": "^4.0", + "codeception/codeception": "4.1.1", "codeception/module-asserts": "^1.1", "codeception/module-filesystem": "^1.0", "codeception/module-laravel5": "^1.0", diff --git a/composer.lock b/composer.lock index a5ac2e6c7..fbf4257d3 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": "a07e6be1ba36d87f79bd8547e7580ac8", + "content-hash": "dca322023597f38ef7991bc9d9bdc50f", "packages": [ { "name": "astrotomic/laravel-translatable", @@ -1512,16 +1512,16 @@ }, { "name": "laravel/framework", - "version": "v6.18.2", + "version": "v6.18.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "9425a2f410d05d5bba493f62cff03854a8b19559" + "reference": "367c2c8dfdfe83cb2ddbc029c0222174098d093a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/9425a2f410d05d5bba493f62cff03854a8b19559", - "reference": "9425a2f410d05d5bba493f62cff03854a8b19559", + "url": "https://api.github.com/repos/laravel/framework/zipball/367c2c8dfdfe83cb2ddbc029c0222174098d093a", + "reference": "367c2c8dfdfe83cb2ddbc029c0222174098d093a", "shasum": "" }, "require": { @@ -1606,7 +1606,7 @@ "ext-memcached": "Required to use the memcache cache driver.", "ext-pcntl": "Required to use all features of the queue worker.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "ext-redis": "Required to use the Redis cache and queue drivers.", "filp/whoops": "Required for friendly error pages in development (^2.4).", "fzaninotto/faker": "Required to use the eloquent factory builder (^1.9.1).", "guzzlehttp/guzzle": "Required to use the Mailgun mail driver and the ping methods on schedules (^6.0|^7.0).", @@ -1654,7 +1654,7 @@ "framework", "laravel" ], - "time": "2020-03-17T17:08:02+00:00" + "time": "2020-03-10T14:11:04+00:00" }, { "name": "laravel/helpers", @@ -1903,16 +1903,16 @@ }, { "name": "league/flysystem", - "version": "1.0.66", + "version": "1.0.65", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21" + "reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/021569195e15f8209b1c4bebb78bd66aa4f08c21", - "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8f17b3ba67097aafb8318cd5c553b1acf7c891c8", + "reference": "8f17b3ba67097aafb8318cd5c553b1acf7c891c8", "shasum": "" }, "require": { @@ -1983,7 +1983,7 @@ "sftp", "storage" ], - "time": "2020-03-17T18:58:12+00:00" + "time": "2020-03-08T18:53:20+00:00" }, { "name": "maatwebsite/excel", @@ -5226,16 +5226,16 @@ }, { "name": "behat/gherkin", - "version": "v4.6.2", + "version": "v4.6.1", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" + "reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/25bdcaf37898b4a939fa3031d5d753ced97e4759", + "reference": "25bdcaf37898b4a939fa3031d5d753ced97e4759", "shasum": "" }, "require": { @@ -5281,20 +5281,20 @@ "gherkin", "parser" ], - "time": "2020-03-17T14:03:26+00:00" + "time": "2020-02-27T11:29:57+00:00" }, { "name": "codeception/codeception", - "version": "4.1.3", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "c30e2abe4af327d8be4fb23446ff740fec76fd60" + "reference": "be584da4859baf34e05afd26fe4c587be4787ff0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/c30e2abe4af327d8be4fb23446ff740fec76fd60", - "reference": "c30e2abe4af327d8be4fb23446ff740fec76fd60", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/be584da4859baf34e05afd26fe4c587be4787ff0", + "reference": "be584da4859baf34e05afd26fe4c587be4787ff0", "shasum": "" }, "require": { @@ -5366,7 +5366,7 @@ "functional testing", "unit testing" ], - "time": "2020-03-17T16:48:30+00:00" + "time": "2020-02-19T16:56:20+00:00" }, { "name": "codeception/lib-asserts",