Skip to content

Commit f67502e

Browse files
committed
Write a test to check handling of duplicate invoice numbers and fix view
1 parent 9116022 commit f67502e

3 files changed

Lines changed: 20 additions & 2 deletions

File tree

app/Http/Controllers/RevenueController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function store(Request $request)
3636
$revenue->save();
3737
} catch (QueryException $e) {
3838
if ($e->errorInfo[1] == 1062) { // 1062 is the MySQL error code for a duplicate entry
39-
return redirect()->back()->withInput()->withErrors(['unique_column' => 'The value for Rechnungsnummer must be unique.']);
39+
return redirect()->back()->withInput()->withErrors(['unique_column' => 'Die Rechnungsnummer existiert bereits.']);
4040
}
4141
throw $e;
4242
}

resources/views/components/revenue-form.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
</datalist>
3535

3636
<label for="invoice_number">Rechnungsnummer:</label><br>
37-
@error('invoice_number')
37+
@error('unique_column')
3838
<div class="alert">{{ $message }}</div>
3939
@enderror
4040
<input id="invoice_number" name="invoice_number"

tests/Feature/RevenueTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,22 @@ public function test_overview_page_shows_correct_total_for_multiple_revenues():
115115
$response->assertSee($formatEuro($totalTax));
116116
$response->assertSee($formatEuro($totalGross));
117117
}
118+
119+
// A test, that checks if an error message is shown, when trying to create a revenue with a duplicate invoice number
120+
public function test_store_revenue_with_duplicate_invoice_number_shows_error_message(): void
121+
{
122+
$user = User::factory()->create();
123+
$revenue = Revenue::factory()->createOne(['invoice_number' => '12345678']);
124+
$formData = Revenue::factory()->makeOne(['invoice_number' => '123456789'])->toArray();
125+
$formData['billing_date'] = '2021-01-01';
126+
$formData['payment_date'] = '2021-01-01';
127+
128+
$response = $this->actingAs($user)
129+
->post('/revenue', $formData);
130+
131+
$response->assertSessionHasErrors(['unique_column' => 'Die Rechnungsnummer existiert bereits.']);
132+
133+
$revenue->delete();
134+
$user->delete();
135+
}
118136
}

0 commit comments

Comments
 (0)