mirror of
https://github.com/pestphp/pest.git
synced 2026-03-07 00:07:22 +01:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 90fb8c602c | |||
| 3974a65a18 | |||
| 2a54b5819d | |||
| 7177791f1e | |||
| c743b10a87 | |||
| 83f8de17c8 | |||
| da20a62e49 | |||
| c8d3e1a9fa | |||
| f7705fe1c1 | |||
| cf23dfa477 | |||
| ab4787c667 | |||
| bd6b166a62 | |||
| 17340947b3 |
@ -52,7 +52,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"pestphp/pest-dev-tools": "^2.16.0",
|
||||
"pestphp/pest-plugin-type-coverage": "^2.4.0",
|
||||
"pestphp/pest-plugin-type-coverage": "^2.5.0",
|
||||
"symfony/process": "^6.3.4"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
|
||||
@ -34,8 +34,6 @@ use PHPUnit\Architecture\Elements\ObjectDescription;
|
||||
use PHPUnit\Framework\ExpectationFailedException;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @template TValue
|
||||
*
|
||||
* @property OppositeExpectation $not Creates the opposite expectation.
|
||||
|
||||
@ -844,6 +844,7 @@ final class Expectation
|
||||
|
||||
$string = match (true) {
|
||||
is_string($this->value) => $this->value,
|
||||
is_object($this->value) && method_exists($this->value, 'toSnapshot') => $this->value->toSnapshot(),
|
||||
is_object($this->value) && method_exists($this->value, '__toString') => $this->value->__toString(),
|
||||
is_object($this->value) && method_exists($this->value, 'toString') => $this->value->toString(),
|
||||
$this->value instanceof \Illuminate\Testing\TestResponse => $this->value->getContent(), // @phpstan-ignore-line
|
||||
|
||||
@ -233,6 +233,30 @@ final class TestCall
|
||||
: $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Skips the current test unless the given test is running on Windows.
|
||||
*/
|
||||
public function onlyOnWindows(): self
|
||||
{
|
||||
return $this->skipOnMac()->skipOnLinux();
|
||||
}
|
||||
|
||||
/**
|
||||
* Skips the current test unless the given test is running on Mac.
|
||||
*/
|
||||
public function onlyOnMac(): self
|
||||
{
|
||||
return $this->skipOnWindows()->skipOnLinux();
|
||||
}
|
||||
|
||||
/**
|
||||
* Skips the current test unless the given test is running on Linux.
|
||||
*/
|
||||
public function onlyOnLinux(): self
|
||||
{
|
||||
return $this->skipOnWindows()->skipOnMac();
|
||||
}
|
||||
|
||||
/**
|
||||
* Repeats the current test the given number of times.
|
||||
*/
|
||||
|
||||
@ -6,7 +6,7 @@ namespace Pest;
|
||||
|
||||
function version(): string
|
||||
{
|
||||
return '2.24.3';
|
||||
return '2.26.0';
|
||||
}
|
||||
|
||||
function testDirectory(string $file = ''): string
|
||||
|
||||
@ -54,8 +54,8 @@ final class Result
|
||||
$returnCode = self::FAILURE_EXIT;
|
||||
}
|
||||
|
||||
$warnings = $result->numberOfTestsWithTestTriggeredPhpunitWarningEvents() +
|
||||
+count($result->warnings())
|
||||
$warnings = $result->numberOfTestsWithTestTriggeredPhpunitWarningEvents()
|
||||
+ count($result->warnings())
|
||||
+ count($result->phpWarnings());
|
||||
|
||||
if ($configuration->failOnWarning() && $warnings > 0) {
|
||||
|
||||
@ -190,7 +190,7 @@ final class Reflection
|
||||
}
|
||||
|
||||
$arguments[$parameter->getName()] = implode('|', array_map(
|
||||
static fn (ReflectionNamedType $type): string => $type->getName(),
|
||||
static fn (ReflectionNamedType $type): string => $type->getName(), // @phpstan-ignore-line
|
||||
($types instanceof ReflectionNamedType)
|
||||
? [$types] // NOTE: normalize as list of to handle unions
|
||||
: $types->getTypes(),
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": " <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <h1>Snapshot<\/h1>\n <\/div>\n <\/div>\n <\/div>"
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
|
||||
Pest Testing Framework 2.24.3.
|
||||
Pest Testing Framework 2.26.0.
|
||||
|
||||
USAGE: pest <file> [options]
|
||||
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
|
||||
Pest Testing Framework 2.24.3.
|
||||
Pest Testing Framework 2.26.0.
|
||||
|
||||
|
||||
@ -836,6 +836,7 @@
|
||||
✓ within describe → pass with dataset with ('my-datas-set-value')
|
||||
✓ pass with toArray
|
||||
✓ pass with array
|
||||
✓ pass with toSnapshot
|
||||
✓ failures
|
||||
✓ failures with custom message
|
||||
✓ not failures
|
||||
@ -1353,4 +1354,4 @@
|
||||
WARN Tests\Visual\Version
|
||||
- visual snapshot of help command output
|
||||
|
||||
Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 19 skipped, 963 passed (2281 assertions)
|
||||
Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 19 skipped, 964 passed (2282 assertions)
|
||||
@ -103,6 +103,26 @@ test('pass with array', function () {
|
||||
])->toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('pass with `toSnapshot`', function () {
|
||||
TestSuite::getInstance()->snapshots->save(json_encode(['key' => $this->snapshotable], JSON_PRETTY_PRINT));
|
||||
|
||||
$object = new class($this->snapshotable)
|
||||
{
|
||||
public function __construct(protected string $snapshotable)
|
||||
{
|
||||
}
|
||||
|
||||
public function toSnapshot()
|
||||
{
|
||||
return json_encode([
|
||||
'key' => $this->snapshotable,
|
||||
], JSON_PRETTY_PRINT);
|
||||
}
|
||||
};
|
||||
|
||||
expect($object)->toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('failures', function () {
|
||||
TestSuite::getInstance()->snapshots->save($this->snapshotable);
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ $run = function () {
|
||||
|
||||
test('parallel', function () use ($run) {
|
||||
expect($run('--exclude-group=integration'))
|
||||
->toContain('Tests: 1 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 15 skipped, 952 passed (2266 assertions)')
|
||||
->toContain('Tests: 1 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 15 skipped, 953 passed (2267 assertions)')
|
||||
->toContain('Parallel: 3 processes');
|
||||
})->skipOnWindows();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user