added comment field to invoice (#3045)

This commit is contained in:
Kevin Papst
2021-12-30 21:49:30 +01:00
committed by GitHub
parent f7b3f4ed76
commit cc809183ae
13 changed files with 190 additions and 52 deletions

View File

@@ -352,20 +352,20 @@ class InvoiceControllerTest extends ControllerBaseTest
$this->assertHasValidationError(
$client,
'/invoice/change-status/' . $id . '/paid/' . $token->getValue(),
'form[name=invoice_payment_date_form]',
'form[name=invoice_edit_form]',
[
'invoice_payment_date_form' => [
'invoice_edit_form' => [
'paymentDate' => 'invalid'
]
],
['#invoice_payment_date_form_paymentDate']
['#invoice_edit_form_paymentDate']
);
$this->assertTrue($client->getResponse()->isSuccessful());
$form = $client->getCrawler()->filter('form[name=invoice_payment_date_form]')->form();
$form = $client->getCrawler()->filter('form[name=invoice_edit_form]')->form();
$client->submit($form, [
'invoice_payment_date_form' => [
'invoice_edit_form' => [
'paymentDate' => (new \DateTime())->format('Y-m-d')
]
]);

View File

@@ -49,12 +49,10 @@ class ProfileControllerTest extends ControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$dates = [
new \DateTime('-10 days'),
new \DateTime('-1 year'),
new \DateTime('2018-06-13'),
new \DateTime('2021-10-20'),
];
$em = $this->getEntityManager();
foreach ($dates as $start) {
$fixture = new TimesheetFixtures();
$fixture->setAmount(10);
@@ -125,7 +123,6 @@ class ProfileControllerTest extends ControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/edit');
$em = $this->getEntityManager();
/** @var User $user */
$user = $this->getUserByRole(User::ROLE_USER);
@@ -150,7 +147,6 @@ class ProfileControllerTest extends ControllerBaseTest
$this->assertHasFlashSuccess($client);
$em = $this->getEntityManager();
$user = $this->getUserByRole(User::ROLE_USER);
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUsername());
@@ -181,7 +177,6 @@ class ProfileControllerTest extends ControllerBaseTest
$this->assertHasFlashSuccess($client);
$em = $this->getEntityManager();
$user = $this->getUserByRole(User::ROLE_USER);
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUsername());
@@ -196,7 +191,6 @@ class ProfileControllerTest extends ControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/password');
$em = $this->getEntityManager();
/** @var User $user */
$user = $this->getUserByRole(User::ROLE_USER);
@@ -223,7 +217,6 @@ class ProfileControllerTest extends ControllerBaseTest
$this->assertHasFlashSuccess($client);
$em = $this->getEntityManager();
$user = $this->getUserByRole(User::ROLE_USER);
$this->assertFalse($passwordEncoder->getEncoder($user)->isPasswordValid($user->getPassword(), UserFixtures::DEFAULT_PASSWORD, $user->getSalt()));
@@ -253,7 +246,6 @@ class ProfileControllerTest extends ControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/api-token');
$em = $this->getEntityManager();
/** @var User $user */
$user = $this->getUserByRole(User::ROLE_USER);
/** @var EncoderFactoryInterface $passwordEncoder */
@@ -279,7 +271,6 @@ class ProfileControllerTest extends ControllerBaseTest
$this->assertHasFlashSuccess($client);
$em = $this->getEntityManager();
$user = $this->getUserByRole(User::ROLE_USER);
$this->assertFalse($passwordEncoder->getEncoder($user)->isPasswordValid($user->getApiToken(), UserFixtures::DEFAULT_API_TOKEN, $user->getSalt()));
@@ -316,7 +307,6 @@ class ProfileControllerTest extends ControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/roles');
$em = $this->getEntityManager();
/** @var User $user */
$user = $this->getUserByRole(User::ROLE_USER);
@@ -336,7 +326,6 @@ class ProfileControllerTest extends ControllerBaseTest
$this->assertHasFlashSuccess($client);
$em = $this->getEntityManager();
$user = $this->getUserByRole(User::ROLE_USER);
$this->assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'ROLE_USER'], $user->getRoles());

View File

@@ -54,6 +54,16 @@ class InvoiceTest extends TestCase
self::assertFalse($sut->isPaid());
self::assertFalse($sut->isOverdue());
self::assertNull($sut->getPaymentDate());
self::assertNull($sut->getComment());
}
public function testSetInvalidStatus()
{
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Unknown invoice status');
$sut = new Invoice();
$sut->setStatus('foo');
}
public function testSetterAndGetter()
@@ -65,17 +75,35 @@ class InvoiceTest extends TestCase
self::assertFalse($sut->isNew());
self::assertTrue($sut->isPending());
self::assertFalse($sut->isPaid());
self::assertFalse($sut->isCanceled());
self::assertEquals(Invoice::STATUS_PENDING, $sut->getStatus());
$sut->setIsPaid();
self::assertFalse($sut->isNew());
self::assertFalse($sut->isPending());
self::assertTrue($sut->isPaid());
self::assertFalse($sut->isCanceled());
self::assertEquals(Invoice::STATUS_PAID, $sut->getStatus());
$sut->setStatus(Invoice::STATUS_PENDING);
self::assertTrue($sut->isPending());
self::assertEquals(Invoice::STATUS_PENDING, $sut->getStatus());
$sut->setIsCanceled();
self::assertFalse($sut->isNew());
self::assertFalse($sut->isPending());
self::assertFalse($sut->isPaid());
self::assertFalse($sut->isOverdue());
self::assertTrue($sut->isCanceled());
self::assertEquals(Invoice::STATUS_CANCELED, $sut->getStatus());
$sut->setIsNew();
self::assertTrue($sut->isNew());
self::assertFalse($sut->isPending());
self::assertFalse($sut->isPaid());
self::assertFalse($sut->isOverdue());
self::assertFalse($sut->isCanceled());
self::assertEquals(Invoice::STATUS_NEW, $sut->getStatus());
$paymentDate = new \DateTime();
$sut->setPaymentDate($paymentDate);
@@ -102,6 +130,9 @@ class InvoiceTest extends TestCase
self::assertEquals(348.99, $sut->getTotal());
self::assertNotNull($sut->getUser());
self::assertEquals(19, $sut->getVat());
$sut->setComment('foo bar');
self::assertEquals('foo bar', $sut->getComment());
}
protected function getInvoiceModel(\DateTime $created): InvoiceModel