diff --git a/src/Map/src/Bridge/Google/composer.json b/src/Map/src/Bridge/Google/composer.json index 9ae81496e79..00f77046a73 100644 --- a/src/Map/src/Bridge/Google/composer.json +++ b/src/Map/src/Bridge/Google/composer.json @@ -22,7 +22,8 @@ }, "require-dev": { "symfony/phpunit-bridge": "^6.4|^7.0", - "symfony/ux-icons": "^2.18" + "symfony/ux-icons": "^2.18", + "spatie/phpunit-snapshot-assertions": "^5.1.8" }, "autoload": { "psr-4": { "Symfony\\UX\\Map\\Bridge\\Google\\": "src/" }, diff --git a/src/Map/src/Bridge/Google/phpunit.xml.dist b/src/Map/src/Bridge/Google/phpunit.xml.dist index 1c3807e6255..4049eb2ea15 100644 --- a/src/Map/src/Bridge/Google/phpunit.xml.dist +++ b/src/Map/src/Bridge/Google/phpunit.xml.dist @@ -16,6 +16,7 @@ + diff --git a/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php b/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php index dcb35dae2ce..a2f7e7dc127 100644 --- a/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php +++ b/src/Map/src/Bridge/Google/tests/GoogleRendererTest.php @@ -27,7 +27,7 @@ class GoogleRendererTest extends RendererTestCase { - public function provideTestRenderMap(): iterable + public static function provideTestRenderMap(): iterable { $map = (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -37,26 +37,22 @@ public function provideTestRenderMap(): iterable $marker3 = new Marker(position: new Point(45.8566, 2.3522), title: 'Dijon', id: 'marker3'); yield 'simple map, with minimum options' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => $map, ]; yield 'with every options' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key', id: 'gmap', language: 'fr', region: 'FR', nonce: 'abcd', retries: 10, url: 'https://maps.googleapis.com/maps/api/js', version: 'quarterly'), 'map' => $map, ]; yield 'with custom attributes' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => $map, 'attributes' => ['data-controller' => 'my-custom-controller', 'class' => 'map'], ]; yield 'with markers and infoWindows' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -66,7 +62,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with all markers removed' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -78,7 +73,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with marker remove and new ones added' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -90,7 +84,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with polygons and infoWindows' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -100,7 +93,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with polylines and infoWindows' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -110,7 +102,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with controls enabled' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -124,7 +115,6 @@ public function provideTestRenderMap(): iterable ]; yield 'without controls enabled' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), apiKey: 'api_key'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -138,7 +128,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with default map id' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), 'my_api_key', defaultMapId: 'DefaultMapId'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -146,7 +135,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with default map id, when passing options (except the "mapId")' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), 'my_api_key', defaultMapId: 'DefaultMapId'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -155,7 +143,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with default map id overridden by option "mapId"' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer(new StimulusHelper(null), new UxIconRenderer(null), 'my_api_key', defaultMapId: 'DefaultMapId'), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -164,7 +151,6 @@ public function provideTestRenderMap(): iterable ]; yield 'markers with icons' => [ - 'expected_render' => '
', 'renderer' => new GoogleRenderer( new StimulusHelper(null), new UxIconRenderer(new class implements IconRendererInterface { diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set markers with icons__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set markers with icons__1.txt new file mode 100644 index 00000000000..155943865d5 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set markers with icons__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set simple map, with minimum options__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set simple map, with minimum options__1.txt new file mode 100644 index 00000000000..91cbdc7634d --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set simple map, with minimum options__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with all markers removed__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with all markers removed__1.txt new file mode 100644 index 00000000000..91cbdc7634d --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with all markers removed__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with controls enabled__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with controls enabled__1.txt new file mode 100644 index 00000000000..91cbdc7634d --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with controls enabled__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with custom attributes__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with custom attributes__1.txt new file mode 100644 index 00000000000..f1f0a9a5909 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with custom attributes__1.txt @@ -0,0 +1,14 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id overridden by option mapId__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id overridden by option mapId__1.txt new file mode 100644 index 00000000000..365f78a9269 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id overridden by option mapId__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id, when passing options (except the mapId)__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id, when passing options (except the mapId)__1.txt new file mode 100644 index 00000000000..6d398ba08c5 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id, when passing options (except the mapId)__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id__1.txt new file mode 100644 index 00000000000..6d398ba08c5 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with default map id__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with every options__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with every options__1.txt new file mode 100644 index 00000000000..db10b08c850 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with every options__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt new file mode 100644 index 00000000000..04d1e3965fb --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with markers and infoWindows__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with markers and infoWindows__1.txt new file mode 100644 index 00000000000..c185e4fb2a1 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with markers and infoWindows__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt new file mode 100644 index 00000000000..76f32b102f7 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt new file mode 100644 index 00000000000..a1d6ecf8754 --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set without controls enabled__1.txt b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set without controls enabled__1.txt new file mode 100644 index 00000000000..3e44c36583a --- /dev/null +++ b/src/Map/src/Bridge/Google/tests/__snapshots__/GoogleRendererTest__testRenderMap with data set without controls enabled__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/composer.json b/src/Map/src/Bridge/Leaflet/composer.json index 32fc6619d63..3d5b74b14a6 100644 --- a/src/Map/src/Bridge/Leaflet/composer.json +++ b/src/Map/src/Bridge/Leaflet/composer.json @@ -22,7 +22,8 @@ }, "require-dev": { "symfony/phpunit-bridge": "^6.4|^7.0", - "symfony/ux-icons": "^2.18" + "symfony/ux-icons": "^2.18", + "spatie/phpunit-snapshot-assertions": "^5.1.8" }, "autoload": { "psr-4": { "Symfony\\UX\\Map\\Bridge\\Leaflet\\": "src/" }, diff --git a/src/Map/src/Bridge/Leaflet/phpunit.xml.dist b/src/Map/src/Bridge/Leaflet/phpunit.xml.dist index 1c3807e6255..4049eb2ea15 100644 --- a/src/Map/src/Bridge/Leaflet/phpunit.xml.dist +++ b/src/Map/src/Bridge/Leaflet/phpunit.xml.dist @@ -16,6 +16,7 @@ + diff --git a/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php b/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php index 47e5da7cbe2..da0a05c2f56 100644 --- a/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php +++ b/src/Map/src/Bridge/Leaflet/tests/LeafletRendererTest.php @@ -26,7 +26,7 @@ class LeafletRendererTest extends RendererTestCase { - public function provideTestRenderMap(): iterable + public static function provideTestRenderMap(): iterable { $map = (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -37,20 +37,17 @@ public function provideTestRenderMap(): iterable $marker3 = new Marker(position: new Point(45.8566, 2.3522), title: 'Dijon', id: 'marker3'); yield 'simple map' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (clone $map), ]; yield 'with custom attributes' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (clone $map), 'attributes' => ['data-controller' => 'my-custom-controller', 'class' => 'map'], ]; yield 'with markers and infoWindows' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -60,7 +57,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with all markers removed' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -72,7 +68,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with marker remove and new ones added' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -84,7 +79,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with polygons and infoWindows' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -94,7 +88,6 @@ public function provideTestRenderMap(): iterable ]; yield 'with polylines and infoWindows' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer(new StimulusHelper(null), new UxIconRenderer(null)), 'map' => (new Map()) ->center(new Point(48.8566, 2.3522)) @@ -104,7 +97,6 @@ public function provideTestRenderMap(): iterable ]; yield 'markers with icons' => [ - 'expected_render' => '
', 'renderer' => new LeafletRenderer( new StimulusHelper(null), new UxIconRenderer(new class implements IconRendererInterface { diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set markers with icons__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set markers with icons__1.txt new file mode 100644 index 00000000000..4aa53a326da --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set markers with icons__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set simple map__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set simple map__1.txt new file mode 100644 index 00000000000..2a39e666909 --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set simple map__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with all markers removed__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with all markers removed__1.txt new file mode 100644 index 00000000000..2a39e666909 --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with all markers removed__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with custom attributes__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with custom attributes__1.txt new file mode 100644 index 00000000000..0c4ece6a8fa --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with custom attributes__1.txt @@ -0,0 +1,14 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt new file mode 100644 index 00000000000..04afe48ecc9 --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with marker remove and new ones added__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with markers and infoWindows__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with markers and infoWindows__1.txt new file mode 100644 index 00000000000..64f60cc82c5 --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with markers and infoWindows__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt new file mode 100644 index 00000000000..e5439223b31 --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polygons and infoWindows__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt new file mode 100644 index 00000000000..be6a8953c44 --- /dev/null +++ b/src/Map/src/Bridge/Leaflet/tests/__snapshots__/LeafletRendererTest__testRenderMap with data set with polylines and infoWindows__1.txt @@ -0,0 +1,13 @@ + +
\ No newline at end of file diff --git a/src/Map/src/Test/RendererFactoryTestCase.php b/src/Map/src/Test/RendererFactoryTestCase.php index 6d8914ef2b1..6a254c392ce 100644 --- a/src/Map/src/Test/RendererFactoryTestCase.php +++ b/src/Map/src/Test/RendererFactoryTestCase.php @@ -11,6 +11,7 @@ namespace Symfony\UX\Map\Test; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\UX\Map\Exception\UnsupportedSchemeException; use Symfony\UX\Map\Renderer\Dsn; @@ -55,6 +56,7 @@ public static function incompleteDsnRenderer(): iterable /** * @dataProvider supportsRenderer */ + #[DataProvider('supportsRenderer')] public function testSupports(bool $expected, string $dsn): void { $factory = $this->createRendererFactory(); @@ -65,6 +67,7 @@ public function testSupports(bool $expected, string $dsn): void /** * @dataProvider createRenderer */ + #[DataProvider('createRenderer')] public function testCreate(string $expected, string $dsn): void { $factory = $this->createRendererFactory(); @@ -76,6 +79,7 @@ public function testCreate(string $expected, string $dsn): void /** * @dataProvider unsupportedSchemeRenderer */ + #[DataProvider('unsupportedSchemeRenderer')] public function testUnsupportedSchemeException(string $dsn, ?string $message = null): void { $factory = $this->createRendererFactory(); diff --git a/src/Map/src/Test/RendererTestCase.php b/src/Map/src/Test/RendererTestCase.php index b9c3fe07244..6e8ff909fef 100644 --- a/src/Map/src/Test/RendererTestCase.php +++ b/src/Map/src/Test/RendererTestCase.php @@ -11,7 +11,9 @@ namespace Symfony\UX\Map\Test; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; +use Spatie\Snapshots\MatchesSnapshots; use Symfony\UX\Map\Map; use Symfony\UX\Map\Renderer\RendererInterface; @@ -20,16 +22,32 @@ */ abstract class RendererTestCase extends TestCase { + use MatchesSnapshots; + /** - * @return iterable}> + * @return iterable}> */ - abstract public function provideTestRenderMap(): iterable; + abstract public static function provideTestRenderMap(): iterable; /** * @dataProvider provideTestRenderMap */ - public function testRenderMap(string $expectedRender, RendererInterface $renderer, Map $map, array $attributes = []): void + #[DataProvider('provideTestRenderMap')] + public function testRenderMap(RendererInterface $renderer, Map $map, array $attributes = []): void + { + $rendered = $renderer->renderMap($map, $attributes); + $rendered = $this->prettify($rendered); + + $this->assertMatchesSnapshot($rendered); + } + + private function prettify(string $html): string { - self::assertSame($expectedRender, $renderer->renderMap($map, $attributes)); + $html = preg_replace('/ ([a-zA-Z-]+=")/', "\n $1", $html); + $html = str_replace('">', "\"\n>", $html); + $html = ''."\n".$html; + + return $html; } }