over naar uuids, policies, predefined mutations aan kunnen passen
linter / quality (push) Failing after 1m5s
tests / ci (8.4) (push) Failing after 1m7s
tests / ci (8.5) (push) Failing after 1m5s
tests / ci (8.3) (push) Failing after 12m5s

This commit is contained in:
Daan Meijer
2026-06-21 23:09:38 +02:00
parent 06e5600447
commit 1e0782385b
46 changed files with 1287 additions and 160 deletions
+14 -17
View File
@@ -5,14 +5,13 @@ use App\Models\Dynamic;
use App\Models\Ledger;
use App\Models\PredefinedMutation;
test('owner can view predefined mutations for ledger', function () {
test('owner can view predefined mutations for dynamic', function () {
$owner = User::factory()->create();
$dynamic = Dynamic::factory()->create();
$dynamic->participants()->attach($owner->id, ['role' => 'owner']);
$ledger = Ledger::factory()->create(['dynamic_id' => $dynamic->id]);
$predefined = PredefinedMutation::create([
'ledger_id' => $ledger->id,
'dynamic_id' => $dynamic->id,
'name' => 'Weekly Room Cleaning',
'description' => 'Cleaned up the master bedroom',
'amount' => 20,
@@ -20,73 +19,71 @@ test('owner can view predefined mutations for ledger', function () {
$this->actingAs($owner);
$response = $this->get(route('dynamics.ledgers.predefined-mutations.index', [$dynamic->id, $ledger->id]));
$response = $this->get(route('dynamics.predefined-mutations.index', $dynamic->uuid));
$response->assertOk();
$response->assertInertia(fn ($page) => $page
->component('Ledgers/PredefinedMutations/Index')
->where('ledger.id', $ledger->id)
->component('Dynamics/PredefinedMutations/Index')
->has('predefined_mutations', 1)
->where('predefined_mutations.0.name', 'Weekly Room Cleaning')
);
});
test('non-owner cannot view predefined mutations for ledger', function () {
test('non-owner cannot view predefined mutations for dynamic', function () {
$owner = User::factory()->create();
$participant = User::factory()->create();
$dynamic = Dynamic::factory()->create();
$dynamic->participants()->attach($owner->id, ['role' => 'owner']);
$dynamic->participants()->attach($participant->id, ['role' => 'participant']);
$ledger = Ledger::factory()->create(['dynamic_id' => $dynamic->id]);
$this->actingAs($participant);
$response = $this->get(route('dynamics.ledgers.predefined-mutations.index', [$dynamic->id, $ledger->id]));
$response = $this->get(route('dynamics.predefined-mutations.index', $dynamic->uuid));
$response->assertStatus(403);
});
test('owner can create predefined mutations for ledger', function () {
test('owner can create predefined mutations for dynamic', function () {
$owner = User::factory()->create();
$dynamic = Dynamic::factory()->create();
$dynamic->participants()->attach($owner->id, ['role' => 'owner']);
$ledger = Ledger::factory()->create(['dynamic_id' => $dynamic->id]);
$this->actingAs($owner);
$response = $this->post(route('dynamics.ledgers.predefined-mutations.store', [$dynamic->id, $ledger->id]), [
$response = $this->post(route('dynamics.predefined-mutations.store', $dynamic->uuid), [
'name' => 'Polished mirrors',
'description' => 'Mirror polishing in dungeon',
'amount' => 15,
'type' => 'reward',
]);
$response->assertRedirect();
$this->assertDatabaseHas('predefined_mutations', [
'ledger_id' => $ledger->id,
'dynamic_id' => $dynamic->id,
'name' => 'Polished mirrors',
'amount' => 15,
]);
});
test('non-owner cannot create predefined mutations for ledger', function () {
test('non-owner cannot create predefined mutations for dynamic', function () {
$owner = User::factory()->create();
$participant = User::factory()->create();
$dynamic = Dynamic::factory()->create();
$dynamic->participants()->attach($owner->id, ['role' => 'owner']);
$dynamic->participants()->attach($participant->id, ['role' => 'participant']);
$ledger = Ledger::factory()->create(['dynamic_id' => $dynamic->id]);
$this->actingAs($participant);
$response = $this->post(route('dynamics.ledgers.predefined-mutations.store', [$dynamic->id, $ledger->id]), [
$response = $this->post(route('dynamics.predefined-mutations.store', $dynamic->uuid), [
'name' => 'Polished mirrors',
'description' => 'Mirror polishing in dungeon',
'amount' => 15,
'type' => 'reward',
]);
$response->assertStatus(403);
$this->assertDatabaseMissing('predefined_mutations', [
'ledger_id' => $ledger->id,
'dynamic_id' => $dynamic->id,
'name' => 'Polished mirrors',
]);
});