From a614dc5cdace415e32ee2ee92f2ffb4d752834d5 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 12 Sep 2019 12:32:46 +1000 Subject: [PATCH] More tests for group settings --- tests/Feature/CompanyTest.php | 2 +- tests/Unit/GroupSettingsTest.php | 82 ++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/tests/Feature/CompanyTest.php b/tests/Feature/CompanyTest.php index 00470e494a29..ddccd2f5d0a4 100644 --- a/tests/Feature/CompanyTest.php +++ b/tests/Feature/CompanyTest.php @@ -103,7 +103,7 @@ class CompanyTest extends TestCase ) ->assertStatus(302); - Log::error($company); + // Log::error($company); $token = CompanyToken::whereCompanyId($company->id)->first()->token; diff --git a/tests/Unit/GroupSettingsTest.php b/tests/Unit/GroupSettingsTest.php index f708594a84f7..065a147ab3b8 100644 --- a/tests/Unit/GroupSettingsTest.php +++ b/tests/Unit/GroupSettingsTest.php @@ -110,4 +110,86 @@ class GroupSettingsTest extends TestCase } + + public function testClientPriority() + { + $cs = $this->client->company->settings; + $cs->timezone_id = 'COMPANY'; + + $this->client->company->settings = $cs; + + $gs = $this->client->group_settings->settings; + $gs->timezone_id = 'GROUP'; + + $this->client->group_settings->settings = $gs; + + $cls = $this->client->settings; + $cls->timezone_id = 'CLIENT'; + + $this->client->settings = $cls; + + $this->client->group_settings->save(); + $this->client->company->save(); + $this->client->save(); + + $this->client->fresh(); + + $this->assertEquals($this->client->getSetting('timezone_id'), 'CLIENT'); + $this->assertEquals($this->client->getMergedSettings()->timezone_id, 'CLIENT'); + } + + + public function testGroupPriority() + { + $cs = $this->client->company->settings; + $cs->timezone_id = 'COMPANY'; + + $this->client->company->settings = $cs; + + $gs = $this->client->group_settings->settings; + $gs->timezone_id = 'GROUP'; + + $this->client->group_settings->settings = $gs; + + $cls = $this->client->settings; + $cls->timezone_id = NULL; + + $this->client->settings = $cls; + + $this->client->group_settings->save(); + $this->client->company->save(); + $this->client->save(); + + $this->client->fresh(); + + $this->assertEquals($this->client->getSetting('timezone_id'), 'GROUP'); + $this->assertEquals($this->client->getMergedSettings()->timezone_id, 'GROUP'); + } + + public function testCompanyFallBackPriority() + { + $cs = $this->client->company->settings; + $cs->timezone_id = 'COMPANY'; + + $this->client->company->settings = $cs; + + $gs = $this->client->group_settings->settings; + $gs->timezone_id = NULL; + + $this->client->group_settings->settings = $gs; + + $cls = $this->client->settings; + $cls->timezone_id = NULL; + + $this->client->settings = $cls; + + $this->client->group_settings->save(); + $this->client->company->save(); + $this->client->save(); + + $this->client->fresh(); + + $this->assertEquals($this->client->getSetting('timezone_id'), 'COMPANY'); + $this->assertEquals($this->client->getMergedSettings()->timezone_id, 'COMPANY'); + } } \ No newline at end of file