71 lines
2.2 KiB
PHP
71 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Payments;
|
|
|
|
use App\Member\Member;
|
|
use App\Pdf\BillType;
|
|
use Database\Factories\Payment\PaymentFactory;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Tests\TestCase;
|
|
|
|
class IndexTest extends TestCase
|
|
{
|
|
|
|
use RefreshDatabase;
|
|
|
|
public function testItGetsLinkWhenMemberHasPayableBills(): void
|
|
{
|
|
$this->withoutExceptionHandling();
|
|
$this->login();
|
|
|
|
$member = Member::factory()
|
|
->defaults()
|
|
->withPayments([
|
|
fn (PaymentFactory $payment) => $payment->notPaid()->nr('1995')->subscription('::subName::', 1500),
|
|
])
|
|
->create(['firstname' => '::firstname']);
|
|
|
|
$this->get("/member/{$member->id}/payment")->assertInertia('member/Index', [
|
|
'href' => route('member.singlepdf', ['member' => $member, 'type' => BillType::class]),
|
|
'label' => 'Rechnung erstellen',
|
|
'disabled' => false,
|
|
], 'single.payment_links.0');
|
|
}
|
|
|
|
public function testLinkIsFalseWhenMemberHasnoPayments(): void
|
|
{
|
|
$this->withoutExceptionHandling();
|
|
$this->login();
|
|
|
|
$member = Member::factory()
|
|
->defaults()
|
|
->create(['firstname' => '::firstname']);
|
|
|
|
$this->get("/member/{$member->id}/payment")->assertInertia('member/Index', [
|
|
'href' => route('member.singlepdf', ['member' => $member, 'type' => BillType::class]),
|
|
'label' => 'Rechnung erstellen',
|
|
'disabled' => true,
|
|
], 'single.payment_links.0');
|
|
}
|
|
|
|
public function testItReturnsDisabledWhenPaymentsArePaid(): void
|
|
{
|
|
$this->withoutExceptionHandling();
|
|
$this->login();
|
|
|
|
$member = Member::factory()
|
|
->defaults()
|
|
->withPayments([
|
|
fn (PaymentFactory $payment) => $payment->paid()->nr('1995')->subscription('::subName::', 1500),
|
|
])
|
|
->create(['firstname' => '::firstname']);
|
|
|
|
$this->get("/member/{$member->id}/payment")->assertInertia('member/Index', [
|
|
'href' => route('member.singlepdf', ['member' => $member, 'type' => BillType::class]),
|
|
'label' => 'Rechnung erstellen',
|
|
'disabled' => true,
|
|
], 'single.payment_links.0');
|
|
}
|
|
|
|
}
|