diff --git a/app/Http/Livewire/CreditsTable.php b/app/Http/Livewire/CreditsTable.php index 9e254b9c0e50..97ac843fa8f4 100644 --- a/app/Http/Livewire/CreditsTable.php +++ b/app/Http/Livewire/CreditsTable.php @@ -26,7 +26,7 @@ class CreditsTable extends Component public $per_page = 10; public $company; - + public function mount() { MultiDB::setDb($this->company->db); @@ -37,6 +37,7 @@ class CreditsTable extends Component $query = Credit::query() ->where('client_id', auth('contact')->user()->client->id) ->where('status_id', '<>', Credit::STATUS_DRAFT) + ->whereDate('due_date', '<=', now()) ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') ->paginate($this->per_page); diff --git a/tests/ClientPortal/CreditsTest.php b/tests/ClientPortal/CreditsTest.php new file mode 100644 index 000000000000..c28525cc0187 --- /dev/null +++ b/tests/ClientPortal/CreditsTest.php @@ -0,0 +1,84 @@ +faker = Factory::create(); + + Model::reguard(); + + $this->makeTestData(); + } + + public function testShowingOnlyQuotesWithDueDateLessOrEqualToNow() + { + // Create two credits, one with due_date in future, one with now, one with less than now. + Credit::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'client_id' => $this->client->id, + 'number' => 'testing-number-01', + 'due_date' => now()->subDays(5), + ]); + + Credit::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'client_id' => $this->client->id, + 'number' => 'testing-number-02', + 'due_date' => now(), + ]); + + Credit::factory()->create([ + 'user_id' => $this->user->id, + 'company_id' => $this->company->id, + 'client_id' => $this->client->id, + 'number' => 'testing-number-03', + 'due_date' => now()->addDays(5), + ]); + + $this->actingAs($this->client); + + // Argument 1 passed to Illuminate\Foundation\Testing\TestCase::actingAs() must implement interface + // Illuminate\Contracts\Auth\Authenticatable, instance of App\Models\Client given, + // called in /var/www/html/tests/ClientPortal/CreditsTest.php on line 65 + + Livewire::test(CreditsTable::class) + ->assertSee('testing-number-01') + ->assertSee('testing-number-02') + ->assertDontSee('testing-number-03'); + } +}