feat(monorepo): migrate to typescript monorepo
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Behat\Context;
|
||||
|
||||
use Basango\SharedKernel\Application\Messaging\CommandBus;
|
||||
use Basango\SharedKernel\Application\Messaging\QueryBus;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
|
||||
use Symfony\Contracts\Service\ServiceSubscriberInterface;
|
||||
use Tests\Behat\State\SharedStorage;
|
||||
|
||||
/**
|
||||
* Class AbstractContext.
|
||||
*
|
||||
* @author bernard-ng <bernard@devscast.tech>
|
||||
*/
|
||||
final class AbstractContext implements Context, ServiceSubscriberInterface
|
||||
{
|
||||
use ServiceMethodsSubscriberTrait;
|
||||
|
||||
#[\Override]
|
||||
public static function getSubscribedServices(): array
|
||||
{
|
||||
return [CommandBus::class, QueryBus::class, SharedStorage::class];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Behat\Hook;
|
||||
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Hook\BeforeScenario;
|
||||
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
final readonly class DatabasePurger implements Context
|
||||
{
|
||||
public function __construct(
|
||||
private EntityManagerInterface $entityManager
|
||||
) {
|
||||
}
|
||||
|
||||
#[BeforeScenario]
|
||||
public function purge(): void
|
||||
{
|
||||
$this->entityManager->getConnection()
|
||||
->getConfiguration()
|
||||
->setMiddlewares([]);
|
||||
|
||||
$purger = new ORMPurger($this->entityManager);
|
||||
$purger->purge();
|
||||
|
||||
$this->entityManager->clear();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Behat\State;
|
||||
|
||||
/**
|
||||
* Class SharedStorage.
|
||||
*
|
||||
* @author bernard-ng <bernard@devscast.tech>
|
||||
*/
|
||||
final class SharedStorage
|
||||
{
|
||||
private array $storage = [];
|
||||
|
||||
public function get(string $key): mixed
|
||||
{
|
||||
return $this->storage[$key] ?? null;
|
||||
}
|
||||
|
||||
public function set(string $key, mixed $value): void
|
||||
{
|
||||
$this->storage[$key] = $value;
|
||||
}
|
||||
|
||||
public function has(string $key): bool
|
||||
{
|
||||
return isset($this->storage[$key]);
|
||||
}
|
||||
|
||||
public function remove(string $key): void
|
||||
{
|
||||
if ($this->has($key)) {
|
||||
unset($this->storage[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user