From 03185f8865ddbbcf0a238446efadf58735986d6b Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sat, 19 Jun 2021 17:03:18 +0200 Subject: [PATCH] Fixed globals and design unit tests --- .../Unit/Controllers/DesignControllerTest.php | 7 +++--- .../Twig/Extensions/ExtensionTest.php | 2 +- .../Renderer/Twig/Extensions/GlobalsTest.php | 25 ++++++++++++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/tests/Unit/Controllers/DesignControllerTest.php b/tests/Unit/Controllers/DesignControllerTest.php index 5ef31b2c..ac697584 100644 --- a/tests/Unit/Controllers/DesignControllerTest.php +++ b/tests/Unit/Controllers/DesignControllerTest.php @@ -37,19 +37,20 @@ class DesignControllerTest extends TestCase */ public function testIndexSetTheme() { + $theme = ['name' => 'Meaning of Live']; /** @var Response|MockObject $response */ $response = $this->createMock(Response::class); $response->expects($this->once()) ->method('withView') - ->willReturnCallback(function (string $view, array $data) use ($response) { + ->willReturnCallback(function (string $view, array $data) use ($response, $theme) { $this->assertTrue(isset($data['theme'])); - $this->assertEquals('42', $data['theme']); + $this->assertEquals($theme, $data['theme']); return $response; }); $request = new Request(); $request->attributes->set('theme', '42'); - $config = new Config(['themes' => [42 => [ 'name' => 'Meaning of Live']]]); + $config = new Config(['themes' => [42 => $theme]]); $controller = new DesignController($response, $config); $controller->index($request); diff --git a/tests/Unit/Renderer/Twig/Extensions/ExtensionTest.php b/tests/Unit/Renderer/Twig/Extensions/ExtensionTest.php index 39a02dd4..d1bb840e 100644 --- a/tests/Unit/Renderer/Twig/Extensions/ExtensionTest.php +++ b/tests/Unit/Renderer/Twig/Extensions/ExtensionTest.php @@ -3,9 +3,9 @@ namespace Engelsystem\Test\Unit\Renderer\Twig\Extensions; use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts; +use Engelsystem\Test\Unit\TestCase; use Exception; use PHPUnit\Framework\MockObject\MockObject; -use PHPUnit\Framework\TestCase; use Twig\Node\Node as TwigNode; use Twig\TwigFunction; diff --git a/tests/Unit/Renderer/Twig/Extensions/GlobalsTest.php b/tests/Unit/Renderer/Twig/Extensions/GlobalsTest.php index 4a97e798..fff7a1c7 100644 --- a/tests/Unit/Renderer/Twig/Extensions/GlobalsTest.php +++ b/tests/Unit/Renderer/Twig/Extensions/GlobalsTest.php @@ -2,25 +2,36 @@ namespace Engelsystem\Test\Unit\Renderer\Twig\Extensions; +use Engelsystem\Config\Config; use Engelsystem\Helpers\Authenticator; use Engelsystem\Http\Request; +use Engelsystem\Models\User\Settings; use Engelsystem\Models\User\User; use Engelsystem\Renderer\Twig\Extensions\Globals; +use Engelsystem\Test\Unit\HasDatabase; use PHPUnit\Framework\MockObject\MockObject; class GlobalsTest extends ExtensionTest { + use HasDatabase; + /** * @covers \Engelsystem\Renderer\Twig\Extensions\Globals::__construct * @covers \Engelsystem\Renderer\Twig\Extensions\Globals::getGlobals */ public function testGetGlobals() { + $this->initDatabase(); + /** @var Authenticator|MockObject $auth */ $auth = $this->createMock(Authenticator::class); /** @var Request|MockObject $request */ $request = $this->createMock(Request::class); - $user = new User(); + $theme = ['name' => 'Testtheme', 'navbar_classes' => 'something']; + $theme2 = ['name' => 'Bar']; + $user = new User(['name' => '', 'email' => '', 'password' => '', 'api_key' => '']); + $userSettings = new Settings(['theme' => 42, 'language' => '']); + $config = new Config(['theme' => 23, 'themes' => [42 => $theme, 23 => $theme2]]); $auth->expects($this->exactly(2)) ->method('user') @@ -29,13 +40,25 @@ class GlobalsTest extends ExtensionTest $user ); + $user->save(); + + $userSettings->user() + ->associate($user) + ->save(); + + $this->app->instance('config', $config); + $extension = new Globals($auth, $request); $globals = $extension->getGlobals(); $this->assertGlobalsExists('user', [], $globals); $this->assertGlobalsExists('request', $request, $globals); + $this->assertGlobalsExists('themeId', 23, $globals); + $this->assertGlobalsExists('theme', $theme2, $globals); $globals = $extension->getGlobals(); $this->assertGlobalsExists('user', $user, $globals); + $this->assertGlobalsExists('themeId', 42, $globals); + $this->assertGlobalsExists('theme', $theme, $globals); } }