feat(monorepo): migrate to typescript monorepo

This commit is contained in:
2025-11-07 17:09:29 +02:00
committed by BernardNganduDev
parent 3e09956f05
commit 075a388ccb
745 changed files with 2341 additions and 5082 deletions
@@ -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]);
}
}
}