tests
CI / php (push) Successful in 2m56s

This commit is contained in:
2026-03-21 03:49:54 -05:00
parent d543c3bb0e
commit bbd83659a7
29 changed files with 1090 additions and 38 deletions
@@ -0,0 +1,90 @@
<?php
declare(strict_types=1);
namespace MageSail\Magesail\Test\Unit\Plugin\App\Request;
use MageSail\Magesail\Model\AdminPathDetector;
use MageSail\Magesail\Model\TunnelRequestDetector;
use MageSail\Magesail\Plugin\App\Request\StoreFromMageSailHeaderPlugin;
use Magento\Framework\App\Request\Http;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Store\Api\Data\StoreInterface;
use Magento\Store\Api\StoreRepositoryInterface;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManager;
use PHPUnit\Framework\TestCase;
class StoreFromMageSailHeaderPluginTest extends TestCase
{
public function testAdminPathForcesWebsiteScopeAndEmptyRunCode(): void
{
$admin = $this->createMock(AdminPathDetector::class);
$admin->method('isAdminPath')->willReturn(true);
$tunnel = $this->createMock(TunnelRequestDetector::class);
$tunnel->expects(self::never())->method('getTunnelStoreCode');
$stores = $this->createMock(StoreRepositoryInterface::class);
$plugin = new StoreFromMageSailHeaderPlugin($admin, $tunnel, $stores);
$request = new Http();
$proceed = static fn ($n, $d = null) => 'proceeded';
self::assertSame(
ScopeInterface::SCOPE_WEBSITE,
$plugin->aroundGetServerValue($request, $proceed, StoreManager::PARAM_RUN_TYPE)
);
self::assertSame(
'',
$plugin->aroundGetServerValue($request, $proceed, StoreManager::PARAM_RUN_CODE)
);
self::assertSame(
'proceeded',
$plugin->aroundGetServerValue($request, $proceed, 'other')
);
}
public function testTunnelStoreCodeReturnedForMageRunCodeWhenValid(): void
{
$admin = $this->createMock(AdminPathDetector::class);
$admin->method('isAdminPath')->willReturn(false);
$tunnel = $this->createMock(TunnelRequestDetector::class);
$tunnel->method('getTunnelStoreCode')->willReturn('mgtun_ok');
$store = $this->createMock(StoreInterface::class);
$stores = $this->createMock(StoreRepositoryInterface::class);
$stores->method('get')->with('mgtun_ok')->willReturn($store);
$plugin = new StoreFromMageSailHeaderPlugin($admin, $tunnel, $stores);
$request = new Http();
$request->setServerParams([]);
$proceed = static fn () => null;
self::assertSame(
'mgtun_ok',
$plugin->aroundGetServerValue($request, $proceed, StoreManager::PARAM_RUN_CODE)
);
self::assertSame(
'store',
$plugin->aroundGetServerValue($request, $proceed, StoreManager::PARAM_RUN_TYPE)
);
}
public function testUnknownCandidateStripsRunCodeToEmptyString(): void
{
$admin = $this->createMock(AdminPathDetector::class);
$admin->method('isAdminPath')->willReturn(false);
$tunnel = $this->createMock(TunnelRequestDetector::class);
$tunnel->method('getTunnelStoreCode')->willReturn(null);
$stores = $this->createMock(StoreRepositoryInterface::class);
$stores->method('get')->willThrowException(new NoSuchEntityException());
$plugin = new StoreFromMageSailHeaderPlugin($admin, $tunnel, $stores);
$request = new Http();
$request->setServerParams([StoreManager::PARAM_RUN_CODE => 'ghost']);
$proceed = static fn () => 'skip';
self::assertSame(
'',
$plugin->aroundGetServerValue($request, $proceed, StoreManager::PARAM_RUN_CODE)
);
}
}