Back fill test for filters

This commit is contained in:
David Bomba 2023-01-19 11:52:07 +11:00
parent fe24cc5eb6
commit 0caa8ea8ce
28 changed files with 188 additions and 80 deletions

View File

@ -32,11 +32,11 @@ class ExpenseFilters extends QueryFilters
}
return $this->builder->where(function ($query) use ($filter) {
$query->where('expenses.public_notes', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value1', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value2', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value3', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value4', 'like', '%'.$filter.'%');
$query->where('public_notes', 'like', '%'.$filter.'%')
->orWhere('custom_value1', 'like', '%'.$filter.'%')
->orWhere('custom_value2', 'like', '%'.$filter.'%')
->orWhere('custom_value3', 'like', '%'.$filter.'%')
->orWhere('custom_value4', 'like', '%'.$filter.'%');
});
}

View File

@ -11,11 +11,7 @@
namespace App\Filters;
use App\Models\Project;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* ProjectFilters.
@ -52,6 +48,7 @@ class ProjectFilters extends QueryFilters
{
$sort_col = explode('|', $sort);
if(is_array($sort_col))
return $this->builder->orderBy($sort_col[0], $sort_col[1]);
}

View File

@ -12,7 +12,6 @@
namespace App\Filters;
use App\Models\PurchaseOrder;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
class PurchaseOrderFilters extends QueryFilters

View File

@ -11,11 +11,7 @@
namespace App\Filters;
use App\Models\RecurringExpense;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* RecurringExpenseFilters.
@ -29,19 +25,18 @@ class RecurringExpenseFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
}
return $this->builder->where(function ($query) use ($filter) {
$query->where('recurring_expenses.name', 'like', '%'.$filter.'%')
->orWhere('recurring_expenses.id_number', 'like', '%'.$filter.'%')
->orWhere('recurring_expenses.custom_value1', 'like', '%'.$filter.'%')
->orWhere('recurring_expenses.custom_value2', 'like', '%'.$filter.'%')
->orWhere('recurring_expenses.custom_value3', 'like', '%'.$filter.'%')
->orWhere('recurring_expenses.custom_value4', 'like', '%'.$filter.'%');
$query->where('public_notes', 'like', '%'.$filter.'%')
->orWhere('custom_value1', 'like', '%'.$filter.'%')
->orWhere('custom_value2', 'like', '%'.$filter.'%')
->orWhere('custom_value3', 'like', '%'.$filter.'%')
->orWhere('custom_value4', 'like', '%'.$filter.'%');
});
}
@ -51,7 +46,7 @@ class RecurringExpenseFilters extends QueryFilters
* @param string sort formatted as column|asc
* @return Builder
*/
public function sort(string $sort) : Builder
public function sort(string $sort): Builder
{
$sort_col = explode('|', $sort);

View File

@ -12,7 +12,6 @@
namespace App\Filters;
use App\Models\RecurringInvoice;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**
@ -77,8 +76,11 @@ class RecurringInvoiceFilters extends QueryFilters
if (in_array('completed', $status_parameters))
$recurring_filters[] = RecurringInvoice::STATUS_COMPLETED;
if(count($recurring_filters) >= 1)
return $this->builder->whereIn('status_id', $recurring_filters);
return $this->builder;
}
/**

View File

@ -11,7 +11,6 @@
namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**
@ -26,7 +25,7 @@ class RecurringQuoteFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
@ -46,7 +45,7 @@ class RecurringQuoteFilters extends QueryFilters
* @param string sort formatted as column|asc
* @return Builder
*/
public function sort(string $sort) : Builder
public function sort(string $sort): Builder
{
$sort_col = explode('|', $sort);
@ -56,9 +55,9 @@ class RecurringQuoteFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,11 +11,7 @@
namespace App\Filters;
use App\Models\User;
use App\Models\Webhook;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* SubscriptionFilters.
@ -29,7 +25,7 @@ class SubscriptionFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
@ -46,7 +42,7 @@ class SubscriptionFilters extends QueryFilters
* @param string sort formatted as column|asc
* @return Builder
*/
public function sort(string $sort) : Builder
public function sort(string $sort): Builder
{
$sort_col = explode('|', $sort);
@ -56,9 +52,9 @@ class SubscriptionFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,7 +11,6 @@
namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**
@ -66,9 +65,9 @@ class SystemLogFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,7 +11,6 @@
namespace App\Filters;
use App\Models\User;
use App\Utils\Traits\MakesHash;
use Illuminate\Database\Eloquent\Builder;
@ -29,7 +28,7 @@ class TaskFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
@ -55,7 +54,7 @@ class TaskFilters extends QueryFilters
* @param string client_status The invoice status as seen by the client
* @return Builder
*/
public function client_status(string $value = '') :Builder
public function client_status(string $value = ''): Builder
{
if (strlen($value) == 0) {
return $this->builder;
@ -90,7 +89,7 @@ class TaskFilters extends QueryFilters
* @param string sort formatted as column|asc
* @return Builder
*/
public function sort(string $sort) : Builder
public function sort(string $sort): Builder
{
$sort_col = explode('|', $sort);
@ -100,9 +99,9 @@ class TaskFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,7 +11,6 @@
namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**
@ -26,7 +25,7 @@ class TaskStatusFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
@ -53,9 +52,9 @@ class TaskStatusFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,7 +11,6 @@
namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**
@ -53,9 +52,9 @@ class TaxRateFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,10 +11,7 @@
namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* TokenFilters.
@ -55,9 +52,9 @@ class TokenFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -11,7 +11,6 @@
namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**

View File

@ -11,11 +11,7 @@
namespace App\Filters;
use App\Models\User;
use App\Models\Vendor;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* VendorFilters.
@ -29,7 +25,7 @@ class VendorFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
@ -56,7 +52,7 @@ class VendorFilters extends QueryFilters
* @param string sort formatted as column|asc
* @return Builder
*/
public function sort(string $sort) : Builder
public function sort(string $sort): Builder
{
$sort_col = explode('|', $sort);
@ -66,12 +62,10 @@ class VendorFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
//return $this->builder->whereCompanyId(auth()->user()->company()->id);
return $this->builder->company();
}
}

View File

@ -11,11 +11,7 @@
namespace App\Filters;
use App\Models\User;
use App\Models\Webhook;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
/**
* TokenFilters.
@ -29,14 +25,14 @@ class WebhookFilters extends QueryFilters
* @return Builder
* @deprecated
*/
public function filter(string $filter = '') : Builder
public function filter(string $filter = ''): Builder
{
if (strlen($filter) == 0) {
return $this->builder;
}
return $this->builder->where(function ($query) use ($filter) {
$query->where('webhooks.target_url', 'like', '%'.$filter.'%');
$query->where('target_url', 'like', '%'.$filter.'%');
});
}
@ -46,7 +42,7 @@ class WebhookFilters extends QueryFilters
* @param string sort formatted as column|asc
* @return Builder
*/
public function sort(string $sort) : Builder
public function sort(string $sort): Builder
{
$sort_col = explode('|', $sort);
@ -56,9 +52,9 @@ class WebhookFilters extends QueryFilters
/**
* Filters the query by the users company ID.
*
* @return Illuminate\Database\Query\Builder
* @return Builder
*/
public function entityFilter()
public function entityFilter(): Builder
{
return $this->builder->company();
}

View File

@ -48,6 +48,19 @@ class CompanyTokenApiTest extends TestCase
);
}
public function testCompanyTokenListFilter()
{
$this->withoutMiddleware(PasswordProtection::class);
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
'X-API-PASSWORD' => 'ALongAndBriliantPassword',
])->get('/api/v1/tokens?filter=xx');
$response->assertStatus(200);
}
public function testCompanyTokenList()
{
$this->withoutMiddleware(PasswordProtection::class);

View File

@ -42,6 +42,16 @@ class ProjectApiTest extends TestCase
Model::reguard();
}
public function testProjectGetFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/projects?filter=xx');
$response->assertStatus(200);
}
public function testProjectGet()
{
$response = $this->withHeaders([

View File

@ -50,6 +50,15 @@ class QuoteTest extends TestCase
);
}
public function testQuoteListApproved()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/quotes?client_status=approved');
$response->assertStatus(200);
}
public function testQuoteConvertToProject()

View File

@ -43,6 +43,16 @@ class RecurringExpenseApiTest extends TestCase
Model::reguard();
}
public function testRecurringExpenseGetFiltered()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/recurring_expenses?filter=xx');
$response->assertStatus(200);
}
public function testRecurringExpenseGet()
{
$response = $this->withHeaders([

View File

@ -52,6 +52,17 @@ class RecurringInvoiceTest extends TestCase
$this->makeTestData();
}
public function testRecurringGetStatus()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/recurring_invoices?client_status=active')
->assertStatus(200);
}
public function testPostRecurringInvoiceWithPlaceholderVariables()
{
$line_items = [];

View File

@ -47,6 +47,17 @@ class RecurringQuoteTest extends TestCase
$this->makeTestData();
}
public function testRecurringQuoteListFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/recurring_quotes?filter=xx');
$response->assertStatus(200);
}
public function testRecurringQuoteList()
{
RecurringQuote::factory()->create(['user_id' => $this->user->id, 'company_id' => $this->company->id, 'client_id' => $this->client->id]);

View File

@ -50,6 +50,17 @@ class SubscriptionApiTest extends TestCase
Model::reguard();
}
public function testSubscriptionFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/subscriptions?filter=xx')
->assertStatus(200);
}
public function testSubscriptionsGet()
{
$product = Product::factory()->create([

View File

@ -34,6 +34,18 @@ class SystemLogApiTest extends TestCase
$this->makeTestData();
}
public function testFilters()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/system_logs?type_id=3')
->assertStatus(200);;
}
public function testSystemLogRoutes()
{
$sl = [

View File

@ -44,6 +44,17 @@ class TaskApiTest extends TestCase
}
public function testTaskListClientStatus()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/tasks?client_status=invoiced')
->assertStatus(200);
}
public function testTaskLockingGate()
{
$data = [

View File

@ -41,6 +41,16 @@ class TaskStatusApiTest extends TestCase
Model::reguard();
}
public function testTaskStatusGetFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/task_statuses?filter=xx');
$response->assertStatus(200);
}
public function testTaskStatusPost()
{
$data = [

View File

@ -42,6 +42,16 @@ class TaxRateApiTest extends TestCase
Model::reguard();
}
public function testTaxRatesGetFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/tax_rates?filter=gst');
$response->assertStatus(200);
}
public function testTaxRatePost()
{
$rate_name = $this->faker->firstName();

View File

@ -42,6 +42,16 @@ class VendorApiTest extends TestCase
Model::reguard();
}
public function testVendorGetFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/vendors?filter=xx');
$response->assertStatus(200);
}
public function testAddVendorToInvoice()
{
$data = [

View File

@ -45,6 +45,16 @@ class WebhookAPITest extends TestCase
$this->withoutExceptionHandling();
}
public function testWebhookGetFilter()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/webhooks?filter=xx');
$response->assertStatus(200);
}
public function testWebhookGetRoute()
{
$response = $this->withHeaders([