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": [
|
||||
"src/globals.php",
|
||||
"src/Pest.php",
|
||||
"compiled/globals.php"
|
||||
]
|
||||
},
|
||||
@ -67,7 +68,7 @@
|
||||
"compile": "@php ./scripts/compile.php",
|
||||
"lint": "rector process src && php-cs-fixer fix -v",
|
||||
"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:integration": "php bin/pest --colors=always --group=integration",
|
||||
"update:snapshots": "REBUILD_SNAPSHOTS=true php bin/pest --colors=always",
|
||||
@ -82,6 +83,11 @@
|
||||
"branch-alias": {
|
||||
"dev-master": "0.2.x-dev"
|
||||
},
|
||||
"pest": {
|
||||
"plugins": [
|
||||
"Pest\\Plugins\\Version"
|
||||
]
|
||||
},
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"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
|
||||
✓ it do not skips
|
||||
s it skips with truthy
|
||||
s it skips with truthy condition by default
|
||||
s it skips with message → skipped because bar
|
||||
s it skips with truthy closure condition
|
||||
- it skips with truthy
|
||||
- it skips with truthy condition by default
|
||||
- it skips with message → skipped because bar
|
||||
- it skips with truthy 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
|
||||
✓ a test
|
||||
@ -135,6 +135,10 @@
|
||||
✓ it throws exception when `process isolation` is true
|
||||
✓ 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
|
||||
✓ it gets file name from called file
|
||||
|
||||
@ -161,7 +165,7 @@
|
||||
✓ it disable decorating printer when colors is set to never
|
||||
|
||||
WARN Tests\Visual\Success
|
||||
s visual snapshot of test suite on success
|
||||
- visual snapshot of test suite on success
|
||||
|
||||
Tests: 6 skipped, 94 passed
|
||||
Time: 3.73s
|
||||
Tests: 6 skipped, 96 passed
|
||||
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