Create and use DailyEmailTestTrait

This commit is contained in:
Oliver Davies 2025-05-13 23:42:39 +01:00
parent 37e0964b53
commit 88ec3d9e51
3 changed files with 29 additions and 17 deletions

View file

@ -3,14 +3,13 @@
namespace Drupal\Tests\opd_daily_emails\Functional; namespace Drupal\Tests\opd_daily_emails\Functional;
use Drupal\Tests\BrowserTestBase; use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\node\Traits\NodeCreationTrait; use Drupal\Tests\opd_daily_emails\Traits\DailyEmailTestTrait;
use Drupal\Tests\token\Functional\TokenTestTrait; use Drupal\Tests\token\Functional\TokenTestTrait;
use Drupal\node\NodeInterface; use Drupal\node\NodeInterface;
use Symfony\Component\HttpFoundation\Response;
class DailyEmailTokenTest extends BrowserTestBase { class DailyEmailTokenTest extends BrowserTestBase {
use NodeCreationTrait; use DailyEmailTestTrait;
use TokenTestTrait; use TokenTestTrait;
public $defaultTheme = 'stark'; public $defaultTheme = 'stark';
@ -33,13 +32,4 @@ class DailyEmailTokenTest extends BrowserTestBase {
); );
} }
private function createDailyEmailNode(array $options): NodeInterface {
return $this->createNode(array_merge(
$options,
[
'type' => 'daily_email',
]
));
}
} }

View file

@ -6,13 +6,14 @@ namespace Drupal\Tests\opd_daily_emails\Kernel\Repository;
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase; use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
use Drupal\Tests\node\Traits\NodeCreationTrait; use Drupal\Tests\node\Traits\NodeCreationTrait;
use Drupal\Tests\opd_daily_emails\Traits\DailyEmailTestTrait;
use Drupal\node\NodeInterface; use Drupal\node\NodeInterface;
use Drupal\opd_daily_emails\Repository\DailyEmailNodeRepository; use Drupal\opd_daily_emails\Repository\DailyEmailNodeRepository;
use Drupal\opd_daily_emails\Repository\DailyEmailRepositoryInterface; use Drupal\opd_daily_emails\Repository\DailyEmailRepositoryInterface;
final class DailyEmailNodeRepositoryTest extends EntityKernelTestBase { final class DailyEmailNodeRepositoryTest extends EntityKernelTestBase {
use NodeCreationTrait; use DailyEmailTestTrait;
public static $modules = [ public static $modules = [
'node', 'node',
@ -20,16 +21,14 @@ final class DailyEmailNodeRepositoryTest extends EntityKernelTestBase {
]; ];
public function test_get_all_published_daily_emails(): void { public function test_get_all_published_daily_emails(): void {
$this->createNode([ $this->createDailyEmailNode([
'status' => NodeInterface::PUBLISHED, 'status' => NodeInterface::PUBLISHED,
'title' => 'A published daily email', 'title' => 'A published daily email',
'type' => 'daily_email',
]); ]);
$this->createNode([ $this->createDailyEmailNode([
'status' => NodeInterface::NOT_PUBLISHED, 'status' => NodeInterface::NOT_PUBLISHED,
'title' => 'An unpublished daily email', 'title' => 'An unpublished daily email',
'type' => 'daily_email',
]); ]);
$repository = $this->container->get(DailyEmailNodeRepository::class); $repository = $this->container->get(DailyEmailNodeRepository::class);

View file

@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace Drupal\Tests\opd_daily_emails\Traits;
use Drupal\Tests\node\Traits\NodeCreationTrait;
use Drupal\node\NodeInterface;
trait DailyEmailTestTrait {
use NodeCreationTrait;
protected function createDailyEmailNode(array $options): NodeInterface {
return $this->createNode(array_merge(
$options,
[
'type' => 'daily_email',
]
));
}
}