improve unit tests #68
1 changed files with 28 additions and 16 deletions
|
@ -8,10 +8,13 @@ use App\Entity\MenuItem;
|
||||||
use App\Entity\OrderItem;
|
use App\Entity\OrderItem;
|
||||||
use App\Tests\DbWebTest;
|
use App\Tests\DbWebTest;
|
||||||
use Override;
|
use Override;
|
||||||
|
use Symfony\Component\BrowserKit\Cookie;
|
||||||
use Symfony\Component\DomCrawler\Crawler;
|
use Symfony\Component\DomCrawler\Crawler;
|
||||||
|
|
||||||
|
use function assert;
|
||||||
use function range;
|
use function range;
|
||||||
use function sprintf;
|
use function sprintf;
|
||||||
|
use function str_ends_with;
|
||||||
|
|
||||||
final class FoodOrderControllerTest extends DbWebTest
|
final class FoodOrderControllerTest extends DbWebTest
|
||||||
{
|
{
|
||||||
|
@ -137,10 +140,10 @@ final class FoodOrderControllerTest extends DbWebTest
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testWith [1, 0, 1]
|
* @testWith [1, 0, 2]
|
||||||
* [2, 1, 1]
|
* [2, 1, 3]
|
||||||
* [3, 1, 1]
|
* [3, 2, 4]
|
||||||
* [4, 1, 0, 5]
|
* [4, 3, 0, 5]
|
||||||
*/
|
*/
|
||||||
public function testPaginatedFirstPage(int $page, int $prevPage, int $nextPage, int $items = 10): void
|
public function testPaginatedFirstPage(int $page, int $prevPage, int $nextPage, int $items = 10): void
|
||||||
{
|
{
|
||||||
|
@ -154,22 +157,27 @@ final class FoodOrderControllerTest extends DbWebTest
|
||||||
$items,
|
$items,
|
||||||
'nobody'
|
'nobody'
|
||||||
);
|
);
|
||||||
$this->assertElementContainsCount(
|
if ($prevPage > 0) {
|
||||||
$crawler,
|
$prevPage = $prevPage === 1 ? '' : "/{$prevPage}";
|
||||||
'a',
|
$node = $crawler->filter('a')
|
||||||
$nextPage,
|
->reduce(static fn(Crawler $node, $i): bool => $node->text() === 'previous page')
|
||||||
'next page'
|
->first();
|
||||||
);
|
$target = $node->attr('href');
|
||||||
$this->assertElementContainsCount(
|
$this->assertTrue(str_ends_with((string) $target, $prevPage));
|
||||||
$crawler,
|
}
|
||||||
'a',
|
if ($prevPage > 3) {
|
||||||
$prevPage,
|
$node = $crawler->filter('a')
|
||||||
'previous page'
|
->reduce(static fn(Crawler $node, $i): bool => $node->text() === 'next page')
|
||||||
);
|
->first();
|
||||||
|
$target = $node->attr('href');
|
||||||
|
$this->assertTrue(str_ends_with((string) $target, "/{$nextPage}"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testNew(): void
|
public function testNew(): void
|
||||||
{
|
{
|
||||||
|
$this->client->getCookieJar()
|
||||||
|
->set(new Cookie('username', 'Testing-1'));
|
||||||
$this->client->request('GET', sprintf('%snew', $this->path));
|
$this->client->request('GET', sprintf('%snew', $this->path));
|
||||||
|
|
||||||
self::assertResponseStatusCodeSame(200);
|
self::assertResponseStatusCodeSame(200);
|
||||||
|
@ -180,6 +188,10 @@ final class FoodOrderControllerTest extends DbWebTest
|
||||||
|
|
||||||
self::assertResponseRedirects("{$this->path}list");
|
self::assertResponseRedirects("{$this->path}list");
|
||||||
self::assertSame(1, $this->repository->count([]));
|
self::assertSame(1, $this->repository->count([]));
|
||||||
|
$order = $this->repository->findOneBy([
|
||||||
|
'createdBy' => 'Testing-1',
|
||||||
|
]);
|
||||||
|
assert($order instanceof FoodOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testOpen(): void
|
public function testOpen(): void
|
||||||
|
|
Loading…
Add table
Reference in a new issue