diff --git a/app/Demo/DemoSeeder.php b/app/Demo/DemoSeeder.php new file mode 100644 index 0000000..b6e0d48 --- /dev/null +++ b/app/Demo/DemoSeeder.php @@ -0,0 +1,40 @@ +iban($companyId) !== null) { + return; + } + + $settings->save($companyId, [ + 'enabled' => true, + 'iban' => self::IBAN, + 'bic' => self::BIC, + 'payment_terms' => self::PAYMENT_TERMS, + ]); + } +} diff --git a/module.json b/module.json index f9baf7b..8fc2084 100644 --- a/module.json +++ b/module.json @@ -17,7 +17,7 @@ "requires": {}, "schema_version": 2, "slug": "e-invoicing", - "version": "0.1.0", + "version": "0.1.1", "license": "AGPL-3.0-only", "compatibility": { "invoiceshelf": ">=3.0.0-alpha.13 <4.0.0", diff --git a/tests/Unit/DemoSeederTest.php b/tests/Unit/DemoSeederTest.php new file mode 100644 index 0000000..808ccff --- /dev/null +++ b/tests/Unit/DemoSeederTest.php @@ -0,0 +1,35 @@ +setContainer(app())->__invoke(['companyId' => self::COMPANY]); + + self::assertSame([ + 'enabled' => true, + 'iban' => DemoSeeder::IBAN, + 'bic' => DemoSeeder::BIC, + 'payment_terms' => DemoSeeder::PAYMENT_TERMS, + ], app(EInvoicingSettings::class)->forCompany(self::COMPANY)); + } + + public function test_a_company_that_already_has_an_iban_is_left_alone(): void + { + $settings = app(EInvoicingSettings::class); + $settings->save(self::COMPANY, ['enabled' => false, 'iban' => self::IBAN]); + + app(DemoSeeder::class)->setContainer(app())->__invoke(['companyId' => self::COMPANY]); + + self::assertSame(['enabled' => false, 'iban' => self::IBAN, 'bic' => null, 'payment_terms' => null], $settings->forCompany(self::COMPANY)); + } +}