configProvider = new ConfigProvider(); } /** @test */ public function properConfigIsReturned(): void { $config = ($this->configProvider)(); $this->assertArrayHasKey('routes', $config); $this->assertArrayHasKey('dependencies', $config); } /** * @test * @dataProvider provideRoutesConfig */ public function routesAreProperlyPrefixed(array $routes, array $expected): void { $configProvider = new ConfigProvider(fn () => ['routes' => $routes]); $config = $configProvider(); $this->assertEquals($expected, $config['routes']); } public function provideRoutesConfig(): iterable { yield 'health action present' => [ [ ['path' => '/foo'], ['path' => '/bar'], ['path' => '/baz/foo'], ['path' => '/health'], ], [ ['path' => '/rest/v{version:1|2}/foo'], ['path' => '/rest/v{version:1|2}/bar'], ['path' => '/rest/v{version:1|2}/baz/foo'], ['path' => '/rest/v{version:1|2}/health'], ['path' => '/rest/health', 'name' => ConfigProvider::UNVERSIONED_HEALTH_ENDPOINT_NAME], ], ]; yield 'health action not present' => [ [ ['path' => '/foo'], ['path' => '/bar'], ['path' => '/baz/foo'], ], [ ['path' => '/rest/v{version:1|2}/foo'], ['path' => '/rest/v{version:1|2}/bar'], ['path' => '/rest/v{version:1|2}/baz/foo'], ], ]; } }