diff --git a/src/Expectation.php b/src/Expectation.php index 1b5d1f03..9c81ab04 100644 --- a/src/Expectation.php +++ b/src/Expectation.php @@ -205,6 +205,16 @@ final class Expectation return $this; } + /** + * Asserts that the value is truthy. + */ + public function toBeTruthy(): Expectation + { + Assert::assertTrue((bool) $this->value); + + return $this; + } + /** * Asserts that the value is false. */ diff --git a/tests/Features/Expect/ToBeTruthy.php b/tests/Features/Expect/ToBeTruthy.php new file mode 100644 index 00000000..710bd2df --- /dev/null +++ b/tests/Features/Expect/ToBeTruthy.php @@ -0,0 +1,26 @@ +toBeTruthy(); + expect([1])->toBeTruthy(); + expect('false')->toBeTruthy(); + expect(1)->toBeTruthy(); + expect(-1)->toBeTruthy(); + + expect(false)->not->toBeTruthy(); + expect('')->not->toBeTruthy(); + expect(null)->not->toBeTruthy(); + expect([])->not->toBeTruthy(); + expect(0)->not->toBeTruthy(); + expect('0')->not->toBeTruthy(); +}); + +test('failures', function () { + expect(null)->toBeTruthy(); +})->throws(ExpectationFailedException::class); + +test('not failures', function () { + expect(1)->not->toBeTruthy(); +})->throws(ExpectationFailedException::class);