Skip to content

Commit

Permalink
Merge pull request #110 from Runroom/improve/code
Browse files Browse the repository at this point in the history
Improve testing code and use stable sonata versions
  • Loading branch information
jordisala1991 committed Sep 27, 2021
2 parents b9bd42f + dfbfc96 commit ccba632
Show file tree
Hide file tree
Showing 61 changed files with 370 additions and 215 deletions.
1 change: 0 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,5 @@ jobs:
- uses: ramsey/composer-install@v1
with:
dependency-versions: ${{ matrix.dependencies }}
composer-options: ${{ matrix.composer-options }}
- run: vendor/bin/phpunit --coverage-clover=clover.xml
- uses: codecov/codecov-action@v1
2 changes: 2 additions & 0 deletions .github/workflows/split_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
matrix:
php: ['8.0']
packages: ${{ fromJson(needs.provide_packages_json.outputs.matrix ) }}
dependencies: [lowest, highest]
steps:
- uses: actions/checkout@v2
- uses: shivammathur/setup-php@v2
Expand All @@ -46,5 +47,6 @@ jobs:
- run: vendor/bin/monorepo-builder localize-composer-paths packages/${{ matrix.packages }}/composer.json --ansi
- uses: ramsey/composer-install@v1
with:
dependency-versions: ${{ matrix.dependencies }}
composer-options: --working-dir=packages/${{ matrix.packages }}
- run: cd packages/${{ matrix.packages }} && vendor/bin/phpunit
1 change: 1 addition & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
'strict_param' => true,
'php_unit_strict' => true,
'php_unit_test_annotation' => ['style' => 'annotation'],
'php_unit_test_case_static_method_calls' => true,
])
->setRiskyAllowed(true)
->setFinder($finder);
Expand Down
31 changes: 19 additions & 12 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
"name": "runroom-packages/runroom-packages",
"description": "Runroom packages for Symfony development",
"license": "MIT",
"authors": [
{
"name": "Runroom",
"email": "software@runroom.com",
"homepage": "https://www.runroom.com"
}
],
"require": {
"php": "^7.4 || ^8.0",
"doctrine/common": "^3.1",
Expand All @@ -12,7 +19,7 @@
"knplabs/doctrine-behaviors": "^2.0.6",
"phpunit/phpunit": "^9.5",
"psr/container": "^1.1 || ^2.0",
"sonata-project/admin-bundle": "^3.103 || ^4.0@rc",
"sonata-project/admin-bundle": "^3.103 || ^4.0",
"sonata-project/doctrine-extensions": "^1.13",
"sonata-project/media-bundle": "^3.32 || ^4.0@dev",
"symfony/asset": "^4.4 || ^5.3",
Expand All @@ -36,16 +43,16 @@
"twig/twig": "^2.12 || ^3.0"
},
"replace": {
"runroom-packages/basic-page-bundle": "0.13.2",
"runroom-packages/ckeditor-sonata-media-bundle": "0.13.2",
"runroom-packages/cookies-bundle": "0.13.2",
"runroom-packages/form-handler-bundle": "0.13.2",
"runroom-packages/redirection-bundle": "0.13.2",
"runroom-packages/render-event-bundle": "0.13.2",
"runroom-packages/seo-bundle": "0.13.2",
"runroom-packages/sortable-behavior-bundle": "0.13.2",
"runroom-packages/testing": "0.13.2",
"runroom-packages/translation-bundle": "0.13.2"
"runroom-packages/basic-page-bundle": "self.version",
"runroom-packages/ckeditor-sonata-media-bundle": "self.version",
"runroom-packages/cookies-bundle": "self.version",
"runroom-packages/form-handler-bundle": "self.version",
"runroom-packages/redirection-bundle": "self.version",
"runroom-packages/render-event-bundle": "self.version",
"runroom-packages/seo-bundle": "self.version",
"runroom-packages/sortable-behavior-bundle": "self.version",
"runroom-packages/testing": "self.version",
"runroom-packages/translation-bundle": "self.version"
},
"conflict": {
"a2lix/translation-form-bundle": "<3.0.4",
Expand Down Expand Up @@ -73,7 +80,7 @@
"psalm/plugin-phpunit": "^0.16",
"psalm/plugin-symfony": "^3.0",
"psr/event-dispatcher": "^1.0",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0@rc",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0",
"symfony/browser-kit": "^5.3",
"symfony/phpunit-bridge": "^5.3",
"symfony/security-bundle": "^4.4 || ^5.3",
Expand Down
5 changes: 3 additions & 2 deletions packages/basic-page-bundle/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@
"a2lix/auto-form-bundle": "^0.3.1",
"a2lix/translation-form-bundle": "^3.0.4",
"friendsofsymfony/ckeditor-bundle": "^2.2",
"knplabs/knp-menu-bundle": "^3.1",
"matthiasnoback/symfony-config-test": "^4.2",
"matthiasnoback/symfony-dependency-injection-test": "^4.1",
"phpunit/phpunit": "^9.5",
"runroom-packages/testing": "^0.13@dev",
"sonata-project/admin-bundle": "^3.103 || ^4.0@rc",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0@rc",
"sonata-project/admin-bundle": "^3.103 || ^4.0",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0",
"sonata-project/media-bundle": "^3.32 || ^4.0@dev",
"symfony/browser-kit": "^5.3",
"symfony/phpunit-bridge": "^5.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ public function itFindsBasicPageGivenItsSlug(): void

$basicPage = $this->repository->findBySlug('slug');

self::assertSame(1, $basicPage->getId());
self::assertNotEmpty((string) $basicPage);
self::assertNotNull($basicPage->getLocation());
self::assertNotNull($basicPage->getContent());
self::assertNotNull($basicPage->getSlug());
self::assertIsBool($basicPage->getPublish());
static::assertSame(1, $basicPage->getId());
static::assertNotEmpty((string) $basicPage);
static::assertNotNull($basicPage->getLocation());
static::assertNotNull($basicPage->getContent());
static::assertNotNull($basicPage->getSlug());
static::assertIsBool($basicPage->getPublish());
}

/** @test */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ public function itCanGenerateAlternateLinksIfValidContext(): void
$basicPage = BasicPageFactory::new()->withTranslations(['en', 'es'])->create()->object();
$context = ['model' => new BasicPageViewModel($basicPage)];

self::assertTrue($this->provider->canGenerateAlternateLink($context, 'es'));
self::assertTrue($this->provider->canGenerateAlternateLink($context, 'en'));
self::assertFalse($this->provider->canGenerateAlternateLink([], 'es'));
self::assertFalse($this->provider->canGenerateAlternateLink(['model' => new \stdClass()], 'es'));
static::assertTrue($this->provider->canGenerateAlternateLink($context, 'es'));
static::assertTrue($this->provider->canGenerateAlternateLink($context, 'en'));
static::assertFalse($this->provider->canGenerateAlternateLink([], 'es'));
static::assertFalse($this->provider->canGenerateAlternateLink(['model' => new \stdClass()], 'es'));
}

/** @test */
Expand All @@ -49,7 +49,7 @@ public function itReturnsRouteParameters(): void
$context = ['model' => new BasicPageViewModel($basicPage)];

foreach (['en', 'es'] as $locale) {
self::assertSame(
static::assertSame(
['slug' => $basicPage->getSlug($locale)],
$this->provider->getParameters($context, $locale)
);
Expand All @@ -59,13 +59,13 @@ public function itReturnsRouteParameters(): void
/** @test */
public function itReturnsNullParametersForAnInvalidContext(): void
{
self::assertNull($this->provider->getParameters([], 'es'));
self::assertNull($this->provider->getParameters(['model' => new \stdClass()], 'es'));
static::assertNull($this->provider->getParameters([], 'es'));
static::assertNull($this->provider->getParameters(['model' => new \stdClass()], 'es'));
}

/** @test */
public function itProvidesAlternateLinks(): void
{
self::assertTrue($this->provider->providesAlternateLinks('runroom.basic_page.route.show'));
static::assertTrue($this->provider->providesAlternateLinks('runroom.basic_page.route.show'));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,11 @@ public function itRendersStatic(): void
{
$model = new BasicPageViewModel(new BasicPage());

$this->service->method('getBasicPageViewModel')->with('slug')->willReturn($model);
$this->service->expects(static::once())->method('getBasicPageViewModel')->with('slug')->willReturn($model);
$this->twig->expects(static::once())->method('render')->with('@RunroomBasicPage/show.html.twig', ['model' => $model])->willReturn('rendered');

$response = $this->controller->show('slug');

self::assertSame(200, $response->getStatusCode());
static::assertSame(200, $response->getStatusCode());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ protected function setUp(): void
/** @test */
public function itProvidesMetasForBasicPageRoutes(): void
{
self::assertTrue($this->provider->providesMetas('runroom.basic_page.route.show'));
static::assertTrue($this->provider->providesMetas('runroom.basic_page.route.show'));
}

/** @test */
public function itReturnsEntityMetaInformationWhenValidContextIsGiven(): void
{
self::assertInstanceOf(EntityMetaInformation::class, $this->provider->getEntityMetaInformation(['model' => $this->model]));
self::assertNull($this->provider->getEntityMetaInformation([]));
self::assertNull($this->provider->getEntityMetaInformation(['model' => new \stdClass()]));
static::assertInstanceOf(EntityMetaInformation::class, $this->provider->getEntityMetaInformation(['model' => $this->model]));
static::assertNull($this->provider->getEntityMetaInformation([]));
static::assertNull($this->provider->getEntityMetaInformation(['model' => new \stdClass()]));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,6 @@ public function itGetsBasicPage(): void

$model = $this->service->getBasicPageViewModel('slug');

self::assertSame($basicPage, $model->getBasicPage());
static::assertSame($basicPage, $model->getBasicPage());
}
}
5 changes: 3 additions & 2 deletions packages/ckeditor-sonata-media-bundle/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
],
"require": {
"php": "^7.4 || ^8.0",
"sonata-project/admin-bundle": "^3.103 || ^4.0@rc",
"sonata-project/admin-bundle": "^3.103 || ^4.0",
"sonata-project/doctrine-extensions": "^1.13",
"sonata-project/media-bundle": "^3.32 || ^4.0@dev",
"symfony/config": "^4.4 || ^5.3",
Expand All @@ -30,11 +30,12 @@
},
"require-dev": {
"doctrine/doctrine-bundle": "^2.4",
"knplabs/knp-menu-bundle": "^3.1",
"matthiasnoback/symfony-config-test": "^4.2",
"matthiasnoback/symfony-dependency-injection-test": "^4.1",
"phpunit/phpunit": "^9.5",
"runroom-packages/testing": "^0.13@dev",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0@rc",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0",
"symfony/phpunit-bridge": "^5.3",
"symfony/security-bundle": "^4.4 || ^5.3",
"symfony/twig-bundle": "^4.4 || ^5.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,26 +101,26 @@ public function browserAction(): void
'quality' => 80,
'format' => 'jpg',
'constraint' => true,
'resizer' => false,
'resizer' => null,
'resizer_options' => [],
]]);

$this->configureSetFormTheme($formView, ['filterTheme']);
$this->configureRender('@RunroomCkeditorSonataMedia/browser.html.twig', 'renderResponse');
$datagrid->expects(self::exactly(2))->method('setValue')->withConsecutive(
$datagrid->expects(static::exactly(2))->method('setValue')->withConsecutive(
['context', null, 'another_context'],
['providerName', null, null]
);
$datagrid->method('getResults')->willReturn([new Media(), $media, $media2]);
$datagrid->method('getForm')->willReturn($form);
$form->method('createView')->willReturn($formView);
$this->admin->expects(self::once())->method('checkAccess')->with('list');
$this->admin->expects(static::once())->method('checkAccess')->with('list');
$this->admin->method('getDatagrid')->willReturn($datagrid);
$this->admin->method('getFilterTheme')->willReturn(['filterTheme']);

$response = $this->controller->browserAction($this->request);

self::assertSame('renderResponse', $response->getContent());
static::assertSame('renderResponse', $response->getContent());
}

/** @test */
Expand All @@ -136,20 +136,20 @@ public function browserActionWithFilters(): void

$this->configureSetFormTheme($formView, ['filterTheme']);
$this->configureRender('@RunroomCkeditorSonataMedia/browser.html.twig', 'renderResponse');
$datagrid->expects(self::exactly(2))->method('setValue')->withConsecutive(
$datagrid->expects(static::exactly(2))->method('setValue')->withConsecutive(
['context', null, 'context'],
['providerName', null, null]
);
$datagrid->method('getResults')->willReturn([]);
$datagrid->method('getForm')->willReturn($form);
$form->method('createView')->willReturn($formView);
$this->admin->expects(self::once())->method('checkAccess')->with('list');
$this->admin->expects(static::once())->method('checkAccess')->with('list');
$this->admin->method('getDatagrid')->willReturn($datagrid);
$this->admin->method('getFilterTheme')->willReturn(['filterTheme']);

$response = $this->controller->browserAction($this->request);

self::assertSame('renderResponse', $response->getContent());
static::assertSame('renderResponse', $response->getContent());
}

/** @test */
Expand All @@ -163,13 +163,13 @@ public function uploadAction(): void
$this->mediaPool->addProvider('provider', $provider);

$this->mediaManager->method('create')->willReturn($media);
$this->mediaManager->expects(self::once())->method('save')->with($media);
$this->admin->expects(self::once())->method('checkAccess')->with('create');
$this->admin->expects(self::once())->method('createObjectSecurity')->with($media);
$this->mediaManager->expects(static::once())->method('save')->with($media);
$this->admin->expects(static::once())->method('checkAccess')->with('create');
$this->admin->expects(static::once())->method('createObjectSecurity')->with($media);

$response = $this->controller->uploadAction($this->request);

self::assertSame('renderResponse', $response->getContent());
static::assertSame('renderResponse', $response->getContent());
}

/** @test */
Expand Down Expand Up @@ -216,7 +216,7 @@ private function configureSetFormTheme(FormView $formView, array $formTheme): vo

$this->twig->method('getRuntime')->with(FormRenderer::class)->willReturn($twigRenderer);

$twigRenderer->expects(self::once())->method('setTheme')->with($formView, $formTheme);
$twigRenderer->expects(static::once())->method('setTheme')->with($formView, $formTheme);
}

/* @todo: Simplify when dropping support for sonata-project/admin-bundle 3 */
Expand All @@ -226,7 +226,7 @@ private function configureRender(string $template, string $rendered): void
'param' => 'param',
'context' => 'another_context',
]);
$this->twig->method('render')->with($template, self::isType('array'))->willReturn($rendered);
$this->twig->method('render')->with($template, static::isType('array'))->willReturn($rendered);
}

/* @todo: Simplify when dropping support for sonata-project/admin-bundle 3 */
Expand Down
5 changes: 3 additions & 2 deletions packages/cookies-bundle/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,13 @@
"a2lix/auto-form-bundle": "^0.3.1",
"a2lix/translation-form-bundle": "^3.0.4",
"friendsofsymfony/ckeditor-bundle": "^2.2",
"knplabs/knp-menu-bundle": "^3.1",
"matthiasnoback/symfony-config-test": "^4.2",
"matthiasnoback/symfony-dependency-injection-test": "^4.1",
"phpunit/phpunit": "^9.5",
"runroom-packages/testing": "^0.13@dev",
"sonata-project/admin-bundle": "^3.103 || ^4.0@rc",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0@rc",
"sonata-project/admin-bundle": "^3.103 || ^4.0",
"sonata-project/doctrine-orm-admin-bundle": "^3.34 || ^4.0",
"symfony/browser-kit": "^5.3",
"symfony/phpunit-bridge": "^5.3",
"symfony/security-bundle": "^4.4 || ^5.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ public function ifFindsCookiesPageById(): void

$cookiesPage = $this->repository->find(1);

self::assertNotNull($cookiesPage);
self::assertSame(1, $cookiesPage->getId());
self::assertNotEmpty((string) $cookiesPage);
self::assertNotNull($cookiesPage->getContent());
static::assertNotNull($cookiesPage);
static::assertSame(1, $cookiesPage->getId());
static::assertNotEmpty((string) $cookiesPage);
static::assertNotNull($cookiesPage->getContent());
}
}
4 changes: 2 additions & 2 deletions packages/cookies-bundle/tests/Unit/CookiesFormTypeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public function itSubmitsValidData(): void
'targetingCookies' => false,
]);

self::assertTrue($form->isSynchronized());
self::assertSame($form->getData(), [
static::assertTrue($form->isSynchronized());
static::assertSame($form->getData(), [
'performanceCookies' => false,
'targetingCookies' => false,
]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,11 @@ public function itRendersCookiesPage(): void
{
$model = new CookiesPageViewModel();

$this->service->expects(self::once())->method('getCookiesPageViewModel')->willReturn($model);
$this->service->expects(static::once())->method('getCookiesPageViewModel')->willReturn($model);
$this->twig->expects(static::once())->method('render')->with('@RunroomCookies/show.html.twig', ['model' => $model])->willReturn('rendered');

$response = $this->controller->index();

self::assertSame(200, $response->getStatusCode());
static::assertSame(200, $response->getStatusCode());
}
}
10 changes: 5 additions & 5 deletions packages/cookies-bundle/tests/Unit/CookiesPageServiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ public function itGetsCookiesPage(): void

$form->method('createView')->willReturn($formView);

$this->repository->expects(self::once())->method('find')->with(1)->willReturn($cookiesPage);
$this->formFactory->expects(self::once())->method('create')
$this->repository->expects(static::once())->method('find')->with(1)->willReturn($cookiesPage);
$this->formFactory->expects(static::once())->method('create')
->with(CookiesFormType::class)
->willReturn($form);

$model = $this->service->getCookiesPageViewModel();

self::assertSame($model->getCookiesPage(), $cookiesPage);
self::assertSame($model->getFormView(), $formView);
self::assertSame($model->getCookies(), []);
static::assertSame($model->getCookiesPage(), $cookiesPage);
static::assertSame($model->getFormView(), $formView);
static::assertSame($model->getCookies(), []);
}
}
Loading

0 comments on commit ccba632

Please sign in to comment.