mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 15:57:21 +01:00
feat: adds --version option
This commit is contained in:
@ -31,6 +31,7 @@
|
|||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"src/globals.php",
|
"src/globals.php",
|
||||||
|
"src/Pest.php",
|
||||||
"compiled/globals.php"
|
"compiled/globals.php"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -67,7 +68,7 @@
|
|||||||
"compile": "@php ./scripts/compile.php",
|
"compile": "@php ./scripts/compile.php",
|
||||||
"lint": "rector process src && php-cs-fixer fix -v",
|
"lint": "rector process src && php-cs-fixer fix -v",
|
||||||
"test:lint": "php-cs-fixer fix -v --dry-run && rector process src --dry-run",
|
"test:lint": "php-cs-fixer fix -v --dry-run && rector process src --dry-run",
|
||||||
"test:types": "phpstan analyse --ansi",
|
"test:types": "phpstan analyse --ansi --memory-limit=0",
|
||||||
"test:unit": "php bin/pest --colors=always --exclude-group=integration",
|
"test:unit": "php bin/pest --colors=always --exclude-group=integration",
|
||||||
"test:integration": "php bin/pest --colors=always --group=integration",
|
"test:integration": "php bin/pest --colors=always --group=integration",
|
||||||
"update:snapshots": "REBUILD_SNAPSHOTS=true php bin/pest --colors=always",
|
"update:snapshots": "REBUILD_SNAPSHOTS=true php bin/pest --colors=always",
|
||||||
@ -82,6 +83,11 @@
|
|||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "0.2.x-dev"
|
"dev-master": "0.2.x-dev"
|
||||||
},
|
},
|
||||||
|
"pest": {
|
||||||
|
"plugins": [
|
||||||
|
"Pest\\Plugins\\Version"
|
||||||
|
]
|
||||||
|
},
|
||||||
"laravel": {
|
"laravel": {
|
||||||
"providers": [
|
"providers": [
|
||||||
"Pest\\Laravel\\PestServiceProvider"
|
"Pest\\Laravel\\PestServiceProvider"
|
||||||
|
|||||||
10
src/Pest.php
Normal file
10
src/Pest.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Pest;
|
||||||
|
|
||||||
|
function version(): string
|
||||||
|
{
|
||||||
|
return '0.2.2';
|
||||||
|
}
|
||||||
39
src/Plugins/Version.php
Normal file
39
src/Plugins/Version.php
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Pest\Plugins;
|
||||||
|
|
||||||
|
use Pest\Contracts\Plugins\HandlesArguments;
|
||||||
|
use function Pest\version;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class Version implements HandlesArguments
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var OutputInterface
|
||||||
|
*/
|
||||||
|
private $output;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance of the plugin.
|
||||||
|
*/
|
||||||
|
public function __construct(OutputInterface $output)
|
||||||
|
{
|
||||||
|
$this->output = $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handleArguments(array $arguments): array
|
||||||
|
{
|
||||||
|
if (in_array('--version', $arguments, true)) {
|
||||||
|
$this->output->writeln(
|
||||||
|
sprintf('Pest %s', version()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $arguments;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -88,12 +88,12 @@
|
|||||||
|
|
||||||
WARN Tests\Features\Skip
|
WARN Tests\Features\Skip
|
||||||
✓ it do not skips
|
✓ it do not skips
|
||||||
s it skips with truthy
|
- it skips with truthy
|
||||||
s it skips with truthy condition by default
|
- it skips with truthy condition by default
|
||||||
s it skips with message → skipped because bar
|
- it skips with message → skipped because bar
|
||||||
s it skips with truthy closure condition
|
- it skips with truthy closure condition
|
||||||
✓ it do not skips with falsy closure condition
|
✓ it do not skips with falsy closure condition
|
||||||
s it skips with condition and message → skipped because foo
|
- it skips with condition and message → skipped because foo
|
||||||
|
|
||||||
PASS Tests\Features\Test
|
PASS Tests\Features\Test
|
||||||
✓ a test
|
✓ a test
|
||||||
@ -135,6 +135,10 @@
|
|||||||
✓ it throws exception when `process isolation` is true
|
✓ it throws exception when `process isolation` is true
|
||||||
✓ it do not throws exception when `process isolation` is false
|
✓ it do not throws exception when `process isolation` is false
|
||||||
|
|
||||||
|
PASS Tests\Unit\Plugins\Version
|
||||||
|
✓ it outputs the version when --version is used
|
||||||
|
✓ it do not outputs version when --version is not used
|
||||||
|
|
||||||
PASS Tests\Unit\Support\Backtrace
|
PASS Tests\Unit\Support\Backtrace
|
||||||
✓ it gets file name from called file
|
✓ it gets file name from called file
|
||||||
|
|
||||||
@ -161,7 +165,7 @@
|
|||||||
✓ it disable decorating printer when colors is set to never
|
✓ it disable decorating printer when colors is set to never
|
||||||
|
|
||||||
WARN Tests\Visual\Success
|
WARN Tests\Visual\Success
|
||||||
s visual snapshot of test suite on success
|
- visual snapshot of test suite on success
|
||||||
|
|
||||||
Tests: 6 skipped, 94 passed
|
Tests: 6 skipped, 96 passed
|
||||||
Time: 3.73s
|
Time: 3.56s
|
||||||
|
|||||||
20
tests/Unit/Plugins/Version.php
Normal file
20
tests/Unit/Plugins/Version.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Pest\Plugins\Version;
|
||||||
|
use Symfony\Component\Console\Output\BufferedOutput;
|
||||||
|
|
||||||
|
it('outputs the version when --version is used', function () {
|
||||||
|
$output = new BufferedOutput();
|
||||||
|
$plugin = new Version($output);
|
||||||
|
|
||||||
|
$plugin->handleArguments(['foo', '--version']);
|
||||||
|
assertEquals("Pest 0.2.2\n", $output->fetch());
|
||||||
|
});
|
||||||
|
|
||||||
|
it('do not outputs version when --version is not used', function () {
|
||||||
|
$output = new BufferedOutput();
|
||||||
|
$plugin = new Version($output);
|
||||||
|
|
||||||
|
$plugin->handleArguments(['foo', 'bar']);
|
||||||
|
assertEquals('', $output->fetch());
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user