feat: improves feedback when test misses description

This commit is contained in:
Nuno Maduro
2022-11-09 20:31:35 +00:00
parent f6cfd425c6
commit 348bd4b923
2 changed files with 26 additions and 1 deletions

View File

@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
namespace Pest\Exceptions;
use InvalidArgumentException;
use NunoMaduro\Collision\Contracts\RenderlessEditor;
use NunoMaduro\Collision\Contracts\RenderlessTrace;
use Symfony\Component\Console\Exception\ExceptionInterface;
/**
* @internal
*/
final class TestDescriptionMissing extends InvalidArgumentException implements ExceptionInterface, RenderlessEditor, RenderlessTrace
{
/**
* Creates a new Exception instance.
*/
public function __construct(string $fileName)
{
parent::__construct(sprintf('Test misses description in the filename `%s`.', $fileName));
}
}

View File

@ -8,6 +8,7 @@ use ParseError;
use Pest\Concerns; use Pest\Concerns;
use Pest\Contracts\HasPrintableTestCaseName; use Pest\Contracts\HasPrintableTestCaseName;
use Pest\Exceptions\DatasetMissing; use Pest\Exceptions\DatasetMissing;
use Pest\Exceptions\TestDescriptionMissing;
use Pest\Exceptions\ShouldNotHappen; use Pest\Exceptions\ShouldNotHappen;
use Pest\Exceptions\TestAlreadyExist; use Pest\Exceptions\TestAlreadyExist;
use Pest\Factories\Concerns\HigherOrderable; use Pest\Factories\Concerns\HigherOrderable;
@ -224,7 +225,7 @@ final class TestCaseFactory
public function addMethod(TestCaseMethodFactory $method): void public function addMethod(TestCaseMethodFactory $method): void
{ {
if ($method->description === null) { if ($method->description === null) {
throw ShouldNotHappen::fromMessage('The test description may not be empty.'); throw new TestDescriptionMissing($method->filename);
} }
if (array_key_exists($method->description, $this->methods)) { if (array_key_exists($method->description, $this->methods)) {