From 7640f22db88cc68990e294b9dfd7ec50dfc41caf Mon Sep 17 00:00:00 2001 From: Henry Whitaker Date: Fri, 24 Jul 2020 11:46:08 +0100 Subject: [PATCH] Added unit tests --- tests/Feature/AppVersionTest.php | 21 ++++++++++++ tests/Feature/ConfigTest.php | 41 ++++++++++++++++++++++ tests/Feature/CronRuleTest.php | 49 +++++++++++++++++++++++++++ tests/Feature/SetSlackWebhookTest.php | 29 ++++++++++++++++ tests/Feature/SettingsTest.php | 22 ++++++++++++ 5 files changed, 162 insertions(+) create mode 100644 tests/Feature/AppVersionTest.php create mode 100644 tests/Feature/ConfigTest.php create mode 100644 tests/Feature/CronRuleTest.php create mode 100644 tests/Feature/SetSlackWebhookTest.php create mode 100644 tests/Feature/SettingsTest.php diff --git a/tests/Feature/AppVersionTest.php b/tests/Feature/AppVersionTest.php new file mode 100644 index 00000000..df424a41 --- /dev/null +++ b/tests/Feature/AppVersionTest.php @@ -0,0 +1,21 @@ +artisan('speedtest:version') + ->expectsOutput('Speedtest Tracker v' . config('speedtest.version')); + } +} diff --git a/tests/Feature/ConfigTest.php b/tests/Feature/ConfigTest.php new file mode 100644 index 00000000..c5cd3a3e --- /dev/null +++ b/tests/Feature/ConfigTest.php @@ -0,0 +1,41 @@ + [ + 'download_upload_graph_enabled' => [], + 'download_upload_graph_width' => [], + 'ping_graph_enabled' => [], + 'ping_graph_width' => [], + 'failure_graph_enabled' => [], + 'failure_graph_width' => [], + ], + 'editable' => [ + 'slack_webhook', + 'telegram_bot_token', + 'telegram_chat_id' + ], + ]; + + /** + * Test config returned by API + * + * @return void + */ + public function testAPIConfig() + { + $response = $this->get('api/settings/config'); + + $response->assertJsonStructure($this->configStructure); + } +} diff --git a/tests/Feature/CronRuleTest.php b/tests/Feature/CronRuleTest.php new file mode 100644 index 00000000..f76bcdde --- /dev/null +++ b/tests/Feature/CronRuleTest.php @@ -0,0 +1,49 @@ + new Cron, + ]; + + $data = [ + 'test' => '*/5 * * * *', + ]; + + $validator = $this->app['validator']->make($data, $rule); + $this->assertTrue($validator->passes()); + } + + /** + * Test an invalid CRON expression + * + * @return void + */ + public function testInvalidCronValidationRule() + { + $rule = [ + 'test' => new Cron, + ]; + + $data = [ + 'test' => 'invalid', + ]; + + $validator = $this->app['validator']->make($data, $rule); + $this->assertFalse($validator->passes()); + } +} diff --git a/tests/Feature/SetSlackWebhookTest.php b/tests/Feature/SetSlackWebhookTest.php new file mode 100644 index 00000000..9302b26d --- /dev/null +++ b/tests/Feature/SetSlackWebhookTest.php @@ -0,0 +1,29 @@ +json('PUT', 'api/settings', [ + 'name' => 'slack_webhook', + 'value' => 'PHPUnitAPI' + ]); + + $response->assertStatus(200); + $this->assertEquals('PHPUnitAPI', SettingsHelper::get('slack_webhook')->value); + } +} diff --git a/tests/Feature/SettingsTest.php b/tests/Feature/SettingsTest.php new file mode 100644 index 00000000..5ef17dac --- /dev/null +++ b/tests/Feature/SettingsTest.php @@ -0,0 +1,22 @@ +get('/'); + + $response->assertStatus(200); + } +}