diff --git a/src/Mixins/Expectation.php b/src/Mixins/Expectation.php index 71117657..ffaeea30 100644 --- a/src/Mixins/Expectation.php +++ b/src/Mixins/Expectation.php @@ -467,6 +467,18 @@ final class Expectation return $this; } + /** + * Asserts that the value is a list. + * + * @return self + */ + public function toBeList(string $message = ''): self + { + Assert::assertIsList($this->value, $message); + + return $this; + } + /** * Asserts that the value is of type bool. * diff --git a/src/Pest.php b/src/Pest.php index fb049a7a..e53afa26 100644 --- a/src/Pest.php +++ b/src/Pest.php @@ -6,7 +6,7 @@ namespace Pest; function version(): string { - return '3.0.0-dev-0007'; + return '3.0.0-dev-0008'; } function testDirectory(string $file = ''): string diff --git a/stubs/init-laravel/TestCase.php.stub b/stubs/init-laravel/TestCase.php.stub index 2932d4a6..fe1ffc2f 100644 --- a/stubs/init-laravel/TestCase.php.stub +++ b/stubs/init-laravel/TestCase.php.stub @@ -6,5 +6,5 @@ use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends BaseTestCase { - use CreatesApplication; + // } diff --git a/tests/.pest/snapshots/Visual/Help/visual_snapshot_of_help_command_output.snap b/tests/.pest/snapshots/Visual/Help/visual_snapshot_of_help_command_output.snap index 78e2c52a..c21145bf 100644 --- a/tests/.pest/snapshots/Visual/Help/visual_snapshot_of_help_command_output.snap +++ b/tests/.pest/snapshots/Visual/Help/visual_snapshot_of_help_command_output.snap @@ -1,5 +1,5 @@ - Pest Testing Framework 3.0.0-dev-0007. + Pest Testing Framework 3.0.0-dev-0008. USAGE: pest [options] @@ -30,11 +30,11 @@ --exclude-group [name] ........... Exclude tests from the specified group(s) --covers [name] ................. Only run tests that intend to cover [name] --uses [name] ..................... Only run tests that intend to use [name] - --list-test-files ................................ List available test files + --list-test-files ................................ List available test files --list-tests .......................................... List available tests --list-tests-xml [file] ................. List available tests in XML format --filter [pattern] ............................... Filter which tests to run - --exclude-filter [pattern] .. Exclude tests for the specified filter pattern + --exclude-filter [pattern] .. Exclude tests for the specified filter pattern --test-suffix [suffixes] Only search for test in files with specified suffix(es). Default: Test.php,.phpt EXECUTION OPTIONS: @@ -107,8 +107,8 @@ --coverage-html [dir] Write code coverage report in HTML format to directory --coverage-php [file] .......... Write serialized code coverage data to file --coverage-text=[file] Write code coverage report in text format to file [default: standard output] - --only-summary-for-coverage-text Option for code coverage report in text format: only show summary - --show-uncovered-for-coverage-text Option for code coverage report in text format: show uncovered files + --only-summary-for-coverage-text Option for code coverage report in text format: only show summary + --show-uncovered-for-coverage-text Option for code coverage report in text format: show uncovered files --coverage-xml [dir] . Write code coverage report in XML format to directory --warm-coverage-cache ........................... Warm static analysis cache --coverage-filter [dir] ........... Include [dir] in code coverage reporting diff --git a/tests/.pest/snapshots/Visual/Version/visual_snapshot_of_help_command_output.snap b/tests/.pest/snapshots/Visual/Version/visual_snapshot_of_help_command_output.snap index c92286d5..5107a59d 100644 --- a/tests/.pest/snapshots/Visual/Version/visual_snapshot_of_help_command_output.snap +++ b/tests/.pest/snapshots/Visual/Version/visual_snapshot_of_help_command_output.snap @@ -1,3 +1,3 @@ - Pest Testing Framework 3.0.0-dev-0007. + Pest Testing Framework 3.0.0-dev-0008. diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index 6a99b1d9..e68340e8 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -523,6 +523,12 @@ ✓ passes with strings ✓ failures ✓ failures with custom message + ✓ not failures + + PASS Tests\Features\Expect\toBeList + ✓ pass + ✓ failures + ✓ failures with custom message ✓ not failures PASS Tests\Features\Expect\toBeLowercase @@ -1461,4 +1467,4 @@ WARN Tests\Visual\Version - visual snapshot of help command output - Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 24 skipped, 1042 passed (2563 assertions) \ No newline at end of file + Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 13 todos, 24 skipped, 1042 passed (2563 assertions) diff --git a/tests/Features/Expect/toBeList.php b/tests/Features/Expect/toBeList.php new file mode 100644 index 00000000..095fda9d --- /dev/null +++ b/tests/Features/Expect/toBeList.php @@ -0,0 +1,21 @@ +toBeList(); + expect(['a' => 1, 'b' => 2, 'c' => 3])->not->toBeList(); + expect('1, 2, 3')->not->toBeList(); +}); + +test('failures', function () { + expect(null)->toBeList(); +})->throws(ExpectationFailedException::class); + +test('failures with custom message', function () { + expect(null)->toBeList('oh no!'); +})->throws(ExpectationFailedException::class, 'oh no!'); + +test('not failures', function () { + expect(['a', 'b', 'c'])->not->toBeList(); +})->throws(ExpectationFailedException::class);