adrema/tests/Feature/Membership/EfzPendingBlockTest.php

81 lines
3.1 KiB
PHP
Raw Normal View History

2022-11-17 02:15:29 +01:00
<?php
namespace Tests\Feature\Membership;
use App\Efz\EfzPendingBlock;
use App\Group;
2022-11-17 02:15:29 +01:00
use App\Member\Member;
use App\Member\Membership;
use Illuminate\Foundation\Testing\DatabaseTransactions;
2024-10-13 21:00:47 +02:00
use Livewire\Livewire;
use Modules\Prevention\EfzPendingBlock as PreventionEfzPendingBlock;
2022-11-17 02:15:29 +01:00
use Tests\TestCase;
class EfzPendingBlockTest extends TestCase
{
use DatabaseTransactions;
public function testItDisplaysEfzPending(): void
{
$this->withoutExceptionHandling()->withNamiSettings(12345, 'password', 101);
$group = Group::factory()->inNami(101)->create();
2022-11-17 02:15:29 +01:00
Member::factory()
->has(Membership::factory()->in('€ LeiterIn', 1, 'Biber', 2))
->defaults()
->for($group)
2022-11-17 02:15:29 +01:00
->create(['firstname' => 'Max', 'lastname' => 'Muster', 'efz' => now()->subYear()]);
Member::factory()
->has(Membership::factory()->in('€ Mitglied', 1, 'Biber', 2))
->defaults()
->for($group)
2022-11-17 02:15:29 +01:00
->create(['firstname' => 'Jane', 'lastname' => 'Muster', 'efz' => now()->subYear()]);
Member::factory()
->has(Membership::factory()->in('€ LeiterIn', 1, 'Biber', 2))
->defaults()
->for($group)
2022-11-17 02:15:29 +01:00
->create(['firstname' => 'Mae', 'lastname' => 'Muster', 'efz' => now()->subYears(5)->startOfYear()]);
Member::factory()
->has(Membership::factory()->in('€ LeiterIn', 1, 'Biber', 2))
->defaults()
->for($group)
2022-11-17 02:15:29 +01:00
->create(['firstname' => 'Joe', 'lastname' => 'Muster', 'efz' => now()->subYears(5)->endOfYear()]);
Member::factory()
->has(Membership::factory()->in('€ LeiterIn', 1, 'Biber', 2)->ended())
->defaults()
->for($group)
->create(['firstname' => 'Joe', 'lastname' => 'Muster', 'efz' => now()->subYears(5)->endOfYear()]);
2022-11-17 02:15:29 +01:00
Member::factory()
->has(Membership::factory()->in('€ LeiterIn', 1, 'Biber', 2))
->defaults()
->for($group)
2022-11-17 02:15:29 +01:00
->create(['firstname' => 'Moa', 'lastname' => 'Muster', 'efz' => null]);
Member::factory()
->has(Membership::factory()->in('€ Mitglied', 1, 'Biber', 2))
->defaults()
->for($group)
2022-11-17 02:15:29 +01:00
->create(['firstname' => 'Doe', 'lastname' => 'Muster', 'efz' => now()->subYears(5)]);
2024-10-13 21:00:47 +02:00
Livewire::test(PreventionEfzPendingBlock::class)
->assertSee('Joe Muster')
->assertSee('Mae Muster')
->assertSee('Moa Muster');
2022-11-17 02:15:29 +01:00
}
public function testItExcludesForeignGroups(): void
{
$this->withoutExceptionHandling()->withNamiSettings(12345, 'password', 101);
Group::factory()->inNami(101)->create();
$otherGroup = Group::factory()->inNami(55)->create();
Member::factory()
->has(Membership::factory()->in('€ LeiterIn', 1, 'Biber', 2))
->defaults()
->for($otherGroup)
->create(['firstname' => 'Joe', 'lastname' => 'Muster', 'efz' => now()->subYears(5)->endOfYear()]);
2024-10-13 21:00:47 +02:00
Livewire::test(PreventionEfzPendingBlock::class)
->assertDontSee('Joe');
}
2022-11-17 02:15:29 +01:00
}