From 9dfa97eedff5fdeca423d7d192fef73229105cc4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 23 Oct 2019 17:21:16 +1100 Subject: [PATCH] enforce settype() for strings that are _ids (#3010) * Add Includes * Clean up company settings + tests * Update Company Settings Schema * Fixes for tests * fixes for tests * fixes for settings * Enforce settype(string) for _ids --- app/Utils/Traits/SettingsSaver.php | 7 ++++++- tests/Feature/CompanyTest.php | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/Utils/Traits/SettingsSaver.php b/app/Utils/Traits/SettingsSaver.php index 4275127388e9..017006e72b82 100644 --- a/app/Utils/Traits/SettingsSaver.php +++ b/app/Utils/Traits/SettingsSaver.php @@ -123,7 +123,12 @@ trait SettingsSaver continue; } elseif($this->checkAttribute($value, $settings->{$key})){ - settype($settings->{$key}, $value); + + if(substr($key, -3) == '_id') + settype($settings->{$key}, 'string'); + else + settype($settings->{$key}, $value); + } else { unset($settings->{$key}); diff --git a/tests/Feature/CompanyTest.php b/tests/Feature/CompanyTest.php index a17bc6c11dec..022b4fa66363 100644 --- a/tests/Feature/CompanyTest.php +++ b/tests/Feature/CompanyTest.php @@ -119,6 +119,8 @@ class CompanyTest extends TestCase $settings = new \stdClass; $settings->custom_value1 = 'test'; + $settings->invoice_design_id = '2'; + $settings->quote_design_id = 1; $company->settings = $settings; @@ -128,7 +130,14 @@ class CompanyTest extends TestCase ])->put('/api/v1/companies/'.$this->encodePrimaryKey($company->id), $company->toArray()) ->assertStatus(200)->decodeResponseJson(); -\Log::error($response); + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $token, + ])->get('/api/v1/companies/'.$this->encodePrimaryKey($company->id)) + ->assertStatus(200)->decodeResponseJson(); + + //\Log::error($response); //$this->assertEquals(1, $response['data']['size_id']);