From d34337edb509c4f6be612d21aec5d2defa364f75 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 24 Nov 2022 08:05:08 +1100 Subject: [PATCH] Minor fixes for rules --- .../StoreBankTransactionRuleRequest.php | 5 ++- .../UpdateBankTransactionRuleRequest.php | 3 ++ tests/Feature/BankTransactionRuleApiTest.php | 43 +++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php b/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php index f62b7414c710..138ca1277ef2 100644 --- a/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php +++ b/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php @@ -35,13 +35,16 @@ class StoreBankTransactionRuleRequest extends Request $rules = [ 'name' => 'bail|required|string', 'rules' => 'bail|array', + 'rules.*.operator' => 'bail|required|nullable', + 'rules.*.search_key' => 'bail|required|nullable', + 'rules.*.value' => 'bail|required|nullable', 'auto_convert' => 'bail|sometimes|bool', 'matches_on_all' => 'bail|sometimes|bool', 'applies_to' => 'bail|sometimes|string', ]; if(isset($this->category_id)) - $rules['category_id'] = 'bail|sometimes|exists:expense_categories,id,'.auth()->user()->company()->id.',is_deleted,0'; + $rules['category_id'] = 'bail|sometimes|exists:expense_categories,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; if(isset($this->vendor_id)) $rules['vendor_id'] = 'bail|sometimes|exists:vendors,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; diff --git a/app/Http/Requests/BankTransactionRule/UpdateBankTransactionRuleRequest.php b/app/Http/Requests/BankTransactionRule/UpdateBankTransactionRuleRequest.php index d5f7baa327a7..535b75525ecc 100644 --- a/app/Http/Requests/BankTransactionRule/UpdateBankTransactionRuleRequest.php +++ b/app/Http/Requests/BankTransactionRule/UpdateBankTransactionRuleRequest.php @@ -34,6 +34,9 @@ class UpdateBankTransactionRuleRequest extends Request $rules = [ 'name' => 'bail|required|string', 'rules' => 'bail|array', + 'rules.*.operator' => 'bail|required|nullable', + 'rules.*.search_key' => 'bail|required|nullable', + 'rules.*.value' => 'bail|required|nullable', 'auto_convert' => 'bail|sometimes|bool', 'matches_on_all' => 'bail|sometimes|bool', 'applies_to' => 'bail|sometimes|string', diff --git a/tests/Feature/BankTransactionRuleApiTest.php b/tests/Feature/BankTransactionRuleApiTest.php index e581788c659a..ec38d470c9fc 100644 --- a/tests/Feature/BankTransactionRuleApiTest.php +++ b/tests/Feature/BankTransactionRuleApiTest.php @@ -60,6 +60,49 @@ if(isset($this->vendor_id)) if(isset($this->client_id)) $rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; */ + public function testBankRuleCategoryIdValidation() + { + $data = [ + 'name' => 'The First Rule', + 'rules' => [ + [ + "operator" => "contains", + "search_key" => "description", + "value" => "mobile" + ], + ], + 'assigned_user_id' => null, + 'auto_convert' => false, + 'matches_on_all' => true, + 'applies_to' => 'DEBIT', + 'category_id' => $this->expense_category->hashed_id, + 'vendor_id' => $this->vendor->hashed_id + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->postJson('/api/v1/bank_transaction_rules/', $data); + + $arr = $response->json(); + + $response->assertStatus(200); + + $this->assertEquals('DEBIT', $arr['data']['applies_to']); + + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->putJson('/api/v1/bank_transaction_rules/'. $arr['data']['id'], $data); + + $arr = $response->json(); + + $response->assertStatus(200); + + $this->assertEquals('DEBIT', $arr['data']['applies_to']); + } + public function testBankRulePost() {