mirror of
https://github.com/pestphp/pest.git
synced 2026-03-07 00:07:22 +01:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1e0bb88b73 | |||
| 83b76d7c2e | |||
| 5a870b3940 | |||
| 1115c64186 | |||
| e38a271ca2 | |||
| 43703ab40a | |||
| 86452765a4 | |||
| b8a1b7e5cc |
23
bin/pest
23
bin/pest
@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php declare(strict_types=1);
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
use Pest\Kernel;
|
use Pest\Kernel;
|
||||||
use Pest\Panic;
|
use Pest\Panic;
|
||||||
@ -37,7 +39,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
if (str_contains($value, '--test-directory=')) {
|
if (str_contains($value, '--test-directory=')) {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
} else if ($value === '--test-directory') {
|
} elseif ($value === '--test-directory') {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
|
|
||||||
if (isset($arguments[$key + 1])) {
|
if (isset($arguments[$key + 1])) {
|
||||||
@ -62,7 +64,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
if (str_contains($value, '--assignee=')) {
|
if (str_contains($value, '--assignee=')) {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
} else if ($value === '--assignee') {
|
} elseif ($value === '--assignee') {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
|
|
||||||
if (isset($arguments[$key + 1])) {
|
if (isset($arguments[$key + 1])) {
|
||||||
@ -72,7 +74,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
if (str_contains($value, '--issue=')) {
|
if (str_contains($value, '--issue=')) {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
} else if ($value === '--issue') {
|
} elseif ($value === '--issue') {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
|
|
||||||
if (isset($arguments[$key + 1])) {
|
if (isset($arguments[$key + 1])) {
|
||||||
@ -82,7 +84,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
if (str_contains($value, '--ticket=')) {
|
if (str_contains($value, '--ticket=')) {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
} else if ($value === '--ticket') {
|
} elseif ($value === '--ticket') {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
|
|
||||||
if (isset($arguments[$key + 1])) {
|
if (isset($arguments[$key + 1])) {
|
||||||
@ -92,7 +94,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
if (str_contains($value, '--pr=')) {
|
if (str_contains($value, '--pr=')) {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
} else if ($value === '--pr') {
|
} elseif ($value === '--pr') {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
|
|
||||||
if (isset($arguments[$key + 1])) {
|
if (isset($arguments[$key + 1])) {
|
||||||
@ -102,7 +104,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
if (str_contains($value, '--pull-request=')) {
|
if (str_contains($value, '--pull-request=')) {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
} else if ($value === '--pull-request') {
|
} elseif ($value === '--pull-request') {
|
||||||
unset($arguments[$key]);
|
unset($arguments[$key]);
|
||||||
|
|
||||||
if (isset($arguments[$key + 1])) {
|
if (isset($arguments[$key + 1])) {
|
||||||
@ -117,7 +119,6 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Used when Pest is required using composer.
|
// Used when Pest is required using composer.
|
||||||
$vendorPath = dirname(__DIR__, 4).'/vendor/autoload.php';
|
$vendorPath = dirname(__DIR__, 4).'/vendor/autoload.php';
|
||||||
|
|
||||||
@ -134,7 +135,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
|
|
||||||
// Get $rootPath based on $autoloadPath
|
// Get $rootPath based on $autoloadPath
|
||||||
$rootPath = dirname($autoloadPath, 2);
|
$rootPath = dirname($autoloadPath, 2);
|
||||||
$input = new ArgvInput();
|
$input = new ArgvInput;
|
||||||
|
|
||||||
$testSuite = TestSuite::getInstance(
|
$testSuite = TestSuite::getInstance(
|
||||||
$rootPath,
|
$rootPath,
|
||||||
@ -146,11 +147,11 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($todo) {
|
if ($todo) {
|
||||||
$testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter());
|
$testSuite->tests->addTestCaseMethodFilter(new TodoTestCaseFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($notes) {
|
if ($notes) {
|
||||||
$testSuite->tests->addTestCaseMethodFilter(new NotesTestCaseFilter());
|
$testSuite->tests->addTestCaseMethodFilter(new NotesTestCaseFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($assignee = $input->getParameterOption('--assignee')) {
|
if ($assignee = $input->getParameterOption('--assignee')) {
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"pestphp/pest-dev-tools": "^3.0.0",
|
"pestphp/pest-dev-tools": "^3.0.0",
|
||||||
"pestphp/pest-plugin-type-coverage": "^3.0.0",
|
"pestphp/pest-plugin-type-coverage": "^3.0.1",
|
||||||
"symfony/process": "^7.1.5"
|
"symfony/process": "^7.1.5"
|
||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
|
|||||||
@ -152,7 +152,7 @@ final class Laravel extends AbstractPreset
|
|||||||
->toOnlyBeUsedIn('App\Http');
|
->toOnlyBeUsedIn('App\Http');
|
||||||
|
|
||||||
$this->expectations[] = expect('App\Http\Controllers')
|
$this->expectations[] = expect('App\Http\Controllers')
|
||||||
->not->toHavePublicMethodsBesides(['__construct', '__invoke', 'index', 'show', 'create', 'store', 'edit', 'update', 'destroy']);
|
->not->toHavePublicMethodsBesides(['__construct', '__invoke', 'index', 'show', 'create', 'store', 'edit', 'update', 'destroy', 'middleware']);
|
||||||
|
|
||||||
$this->expectations[] = expect([
|
$this->expectations[] = expect([
|
||||||
'dd',
|
'dd',
|
||||||
|
|||||||
@ -509,7 +509,7 @@ final class Expectation
|
|||||||
{
|
{
|
||||||
return Targeted::make(
|
return Targeted::make(
|
||||||
$this,
|
$this,
|
||||||
fn (ObjectDescription $object): bool => (bool) preg_match('/^<\?php\s+declare\(.*?strict_types\s?=\s?1.*?\);/', (string) file_get_contents($object->path)),
|
fn (ObjectDescription $object): bool => (bool) preg_match('/^<\?php\s*(\/\*[\s\S]*?\*\/|\/\/[^\r\n]*(?:\r?\n|$)|\s)*declare\s*\(\s*strict_types\s*=\s*1\s*\)\s*;/m', (string) file_get_contents($object->path)),
|
||||||
'to use strict types',
|
'to use strict types',
|
||||||
FileLineFinder::where(fn (string $line): bool => str_contains($line, '<?php')),
|
FileLineFinder::where(fn (string $line): bool => str_contains($line, '<?php')),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -6,7 +6,7 @@ namespace Pest;
|
|||||||
|
|
||||||
function version(): string
|
function version(): string
|
||||||
{
|
{
|
||||||
return '3.2.4';
|
return '3.2.5';
|
||||||
}
|
}
|
||||||
|
|
||||||
function testDirectory(string $file = ''): string
|
function testDirectory(string $file = ''): string
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Pest Testing Framework 3.2.4.
|
Pest Testing Framework 3.2.5.
|
||||||
|
|
||||||
USAGE: pest <file> [options]
|
USAGE: pest <file> [options]
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
Pest Testing Framework 3.2.4.
|
Pest Testing Framework 3.2.5.
|
||||||
|
|
||||||
|
|||||||
@ -974,6 +974,10 @@
|
|||||||
✓ opposite missing strict equality
|
✓ opposite missing strict equality
|
||||||
✓ opposite has strict equality
|
✓ opposite has strict equality
|
||||||
|
|
||||||
|
PASS Tests\Features\Expect\toUseStrictTypes
|
||||||
|
✓ pass
|
||||||
|
✓ failures
|
||||||
|
|
||||||
PASS Tests\Features\Expect\toUseTrait
|
PASS Tests\Features\Expect\toUseTrait
|
||||||
✓ pass
|
✓ pass
|
||||||
✓ failures
|
✓ failures
|
||||||
@ -1580,4 +1584,4 @@
|
|||||||
WARN Tests\Visual\Version
|
WARN Tests\Visual\Version
|
||||||
- visual snapshot of help command output
|
- visual snapshot of help command output
|
||||||
|
|
||||||
Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 17 todos, 28 skipped, 1093 passed (2644 assertions)
|
Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 17 todos, 28 skipped, 1095 passed (2648 assertions)
|
||||||
17
tests/Features/Expect/toUseStrictTypes.php
Normal file
17
tests/Features/Expect/toUseStrictTypes.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Pest\Arch\Exceptions\ArchExpectationFailedException;
|
||||||
|
use Tests\Fixtures\Arch\ToUseStrictTypes\HasNoStrictType;
|
||||||
|
use Tests\Fixtures\Arch\ToUseStrictTypes\HasStrictType;
|
||||||
|
use Tests\Fixtures\Arch\ToUseStrictTypes\HasStrictTypeWithCommentsAbove;
|
||||||
|
|
||||||
|
test('pass', function () {
|
||||||
|
expect(HasStrictType::class)->toUseStrictTypes()
|
||||||
|
->and(HasStrictTypeWithCommentsAbove::class)->toUseStrictTypes();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('failures', function () {
|
||||||
|
expect(HasNoStrictType::class)->toUseStrictTypes();
|
||||||
|
})->throws(ArchExpectationFailedException::class);
|
||||||
5
tests/Fixtures/Arch/ToUseStrictTypes/HasNoStrictType.php
Normal file
5
tests/Fixtures/Arch/ToUseStrictTypes/HasNoStrictType.php
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Fixtures\Arch\ToUseStrictTypes;
|
||||||
|
|
||||||
|
class HasNoStrictType {}
|
||||||
7
tests/Fixtures/Arch/ToUseStrictTypes/HasStrictType.php
Normal file
7
tests/Fixtures/Arch/ToUseStrictTypes/HasStrictType.php
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Tests\Fixtures\Arch\ToUseStrictTypes;
|
||||||
|
|
||||||
|
class HasStrictType {}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/** @noinspection PhpUnused */
|
||||||
|
|
||||||
|
// some other comment
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Tests\Fixtures\Arch\ToUseStrictTypes;
|
||||||
|
|
||||||
|
class HasStrictTypeWithCommentsAbove {}
|
||||||
@ -16,7 +16,7 @@ $run = function () {
|
|||||||
|
|
||||||
test('parallel', function () use ($run) {
|
test('parallel', function () use ($run) {
|
||||||
expect($run('--exclude-group=integration'))
|
expect($run('--exclude-group=integration'))
|
||||||
->toContain('Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 17 todos, 19 skipped, 1083 passed (2620 assertions)')
|
->toContain('Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 17 todos, 19 skipped, 1085 passed (2624 assertions)')
|
||||||
->toContain('Parallel: 3 processes');
|
->toContain('Parallel: 3 processes');
|
||||||
})->skipOnWindows();
|
})->skipOnWindows();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user