diff --git a/docs/reference.md b/docs/reference.md index c0ecbf43d..2caf3b7a7 100644 --- a/docs/reference.md +++ b/docs/reference.md @@ -15,8 +15,7 @@ sylius_resource: validation_groups: [sylius] options: object_manager: default - templates: - form: Book/_form.html.twig + templates: 'book' # directory of templates, this would be placed in `templates/book/`. Default value is empty. Keep in mind, that in Sylius we usually use UpperCamelCase notation in contrary to Symfony recommendations translation: classes: model: ~ diff --git a/src/Bundle/Tests/Configuration/ConfigurationTest.php b/src/Bundle/Tests/Configuration/ConfigurationTest.php index 4b32a5d85..d36be1313 100644 --- a/src/Bundle/Tests/Configuration/ConfigurationTest.php +++ b/src/Bundle/Tests/Configuration/ConfigurationTest.php @@ -13,9 +13,13 @@ namespace Sylius\Bundle\ResourceBundle\Tests\Configuration; +use App\Entity\Book; use Matthias\SymfonyConfigTest\PhpUnit\ConfigurationTestCaseTrait; use PHPUnit\Framework\TestCase; +use Sylius\Bundle\ResourceBundle\Controller\ResourceController; use Sylius\Bundle\ResourceBundle\DependencyInjection\Configuration; +use Sylius\Bundle\ResourceBundle\Form\Type\DefaultResourceType; +use Sylius\Component\Resource\Factory\Factory; class ConfigurationTest extends TestCase { @@ -116,6 +120,40 @@ public function its_authorization_checker_cannot_be_empty() ); } + /** + * @test + */ + public function its_templates_for_a_specific_resource_can_be_customized(): void + { + $this->assertProcessedConfigurationEquals( + [ + ['resources' => [ + 'app.book' => [ + 'classes' => [ + 'model' => Book::class, + ], + 'templates' => 'book', + ], + ]], + ], + [ + 'resources' => [ + 'app.book' => [ + 'classes' => [ + 'model' => Book::class, + 'controller' => ResourceController::class, + 'factory' => Factory::class, + 'form' => DefaultResourceType::class, + ], + 'templates' => 'book', + 'driver' => 'doctrine/orm', + ], + ], + ], + 'resources' + ); + } + protected function getConfiguration() { return new Configuration();