Abrechnungsgrüne nun immer erforderlich
This commit is contained in:
@@ -40,13 +40,41 @@ class InvoiceTypeSelectionTest extends TestCase
|
||||
|
||||
app()->instance('tenant', $tenant);
|
||||
|
||||
// Zwei wählbare Typen neben der Beitragserstattung, die aus der Migration kommt.
|
||||
// Zwei wählbare Typen neben der Beitragserstattung, die aus der Migration kommt. Nur einer trägt
|
||||
// ein Einkaufsbeispiel -- der andere prüft den Fall einer ungepflegten Spalte.
|
||||
DB::table('invoice_types')->insert([
|
||||
['slug' => InvoiceType::INVOICE_TYPE_PROGRAM, 'name' => 'Programmkosten', 'sort_order' => 1, 'selectable' => true],
|
||||
['slug' => InvoiceType::INVOICE_TYPE_OTHER, 'name' => 'Sonstige Kosten', 'sort_order' => 3, 'selectable' => true],
|
||||
[
|
||||
'slug' => InvoiceType::INVOICE_TYPE_PROGRAM,
|
||||
'name' => 'Programmkosten',
|
||||
'purchase_example' => 'z. B. Bastelmaterial für den Workshop',
|
||||
'sort_order' => 1,
|
||||
'selectable' => true,
|
||||
],
|
||||
[
|
||||
'slug' => InvoiceType::INVOICE_TYPE_OTHER,
|
||||
'name' => 'Sonstige Kosten',
|
||||
'purchase_example' => null,
|
||||
'sort_order' => 3,
|
||||
'selectable' => true,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_the_form_receives_the_purchase_example_of_each_type(): void
|
||||
{
|
||||
// Das Beispiel im Feld "Was wurde eingekauft" wird in der Tabelle gepflegt, nicht im Formular --
|
||||
// sonst bräuchte jede Textänderung ein Deployment.
|
||||
$response = $this->getJson('/api/v1/core/retrieve-invoice-types');
|
||||
|
||||
$response->assertOk();
|
||||
$examples = array_column($response->json('invoiceTypes'), 'purchaseExample', 'slug');
|
||||
|
||||
$this->assertSame('z. B. Bastelmaterial für den Workshop', $examples[InvoiceType::INVOICE_TYPE_PROGRAM]);
|
||||
|
||||
// Ungepflegt: Das Formular setzt dann seinen eigenen allgemeinen Text ein.
|
||||
$this->assertNull($examples[InvoiceType::INVOICE_TYPE_OTHER]);
|
||||
}
|
||||
|
||||
public function test_the_refund_type_exists_but_is_not_selectable(): void
|
||||
{
|
||||
// `where` und nicht `find`: InvoiceType deklariert keinen Primärschlüssel, `find` suchte nach `id`.
|
||||
|
||||
Reference in New Issue
Block a user