feat: adds --version option

This commit is contained in:
Nuno Maduro
2020-06-26 18:17:11 +02:00
parent cb4c9563bd
commit 9ea51caf3f
5 changed files with 88 additions and 9 deletions

View File

@ -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
View 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
View 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;
}
}

View File

@ -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

View 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());
});