From 63ed7949a26b9c27a9f42b39a07a91bf84261328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Touz=C3=A9?= Date: Sat, 23 May 2020 16:31:59 +0200 Subject: [PATCH] Add test for admin, fix issue on admin token parameter. --- .env.test | 1 + config/services.yaml | 1 + src/Controller/AdminController.php | 2 +- tests/Functional/AdminControllerTest.php | 35 ++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/Functional/AdminControllerTest.php diff --git a/.env.test b/.env.test index d048686..25792e8 100644 --- a/.env.test +++ b/.env.test @@ -3,3 +3,4 @@ KERNEL_CLASS='App\Kernel' APP_SECRET='$ecretf0rt3st' SYMFONY_DEPRECATIONS_HELPER=999999 PANTHER_APP_ENV=panther +ADMIN_TOKEN=testAdminToken \ No newline at end of file diff --git a/config/services.yaml b/config/services.yaml index 5c4b417..75b9db4 100755 --- a/config/services.yaml +++ b/config/services.yaml @@ -4,6 +4,7 @@ # Put parameters here that don't need to change on each machine where the app is deployed # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration parameters: + admin_token: '%env(resolve:ADMIN_TOKEN)%' services: # default configuration for services in *this* file diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index d52425f..0fc1b75 100755 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -34,7 +34,7 @@ class AdminController extends FramadateController { function cleanExpiredPolls( string $token ) { - if ( $this->getParameter( 'ADMIN_TOKEN' ) !== $token ) { + if ( $this->getParameter( 'admin_token' ) !== $token ) { return $this->json( [ 'message' => 'clean routine can NOT be done, your admin token is bad, and you should feel bad.', ], diff --git a/tests/Functional/AdminControllerTest.php b/tests/Functional/AdminControllerTest.php new file mode 100644 index 0000000..db84391 --- /dev/null +++ b/tests/Functional/AdminControllerTest.php @@ -0,0 +1,35 @@ +loadFixtures(array( + 'App\DataFixtures\AppPollFixtures' + )); + + $client->request('GET', '/admin/polls/clean/testAdminToken'); + + $response = $client->getResponse(); + $this->assertEquals(200, $response->getStatusCode()); + $body = $response->getContent(); + $json = json_decode($body, true); + $this->assertEquals(4, $json['data']['count']); + + //This call is supposed to be nilpotent + $client->request('GET', '/admin/polls/clean/testAdminToken'); + $response = $client->getResponse(); + $json = json_decode($response->getContent(), true); + $this->assertEquals(0, $json['data']['count']); + + } + +}