1
0
Fork 0
mirror of https://github.com/archtechx/money.git synced 2025-12-12 19:34:02 +00:00

Fixes #11 - Remove trailing zeros from formatted price (#18)

* Remove trailing zeros from formatted price

* Add setting for how to handle trailing decimal zeros

* Write tests

* Fix code style

* Rewrite function description

* Change test name

* Add empty line at end of file

* rename deleteTrailingDecimalZeros to trimTrailingDecimalZeros

* Fix grammar

* Remove unnecessary parameter declarations

* fix test name

* fix comment grammar

* fix docblock grammar

Co-authored-by: Samuel Štancl <samuel@archte.ch>
This commit is contained in:
David Andersson 2022-05-16 13:12:13 +02:00 committed by GitHub
parent 545610efb0
commit 269274586a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 52 additions and 1 deletions

View file

@ -5,8 +5,9 @@ use ArchTech\Money\Currency;
use ArchTech\Money\Money;
use ArchTech\Money\Tests\Currencies\CZK;
use ArchTech\Money\Tests\Currencies\EUR;
use ArchTech\Money\Tests\Currencies\SEK;
beforeEach(fn () => currencies()->add([CZK::class, EUR::class]));
beforeEach(fn () => currencies()->add([CZK::class, EUR::class, SEK::class]));
test('prefixes are applied', function () {
expect(Money::fromDecimal(10.00, USD::class)->formatted())->toBe('$10.00');
@ -45,3 +46,15 @@ test('the format method accepts overrides', function () {
expect(Money::fromDecimal(10.45)->formatted(['decimalSeparator' => ',', 'prefix' => '$$$']))->toBe('$$$10,45');
expect(Money::fromDecimal(10.45)->formatted(decimalSeparator: ',', suffix: ' USD'))->toBe('$10,45 USD');
});
test('decimal zeros can be trimmed', function () {
// SEK uses decimal zero trimming
expect(Money::fromDecimal(10.00, SEK::class)->formatted())->toBe('10 kr');
expect(Money::fromDecimal(10.10, SEK::class)->formatted())->toBe('10.1 kr');
expect(Money::fromDecimal(10.12, SEK::class)->formatted())->toBe('10.12 kr');
// EUR does not use decimal zero trimming
expect(Money::fromDecimal(10.00, EUR::class)->formatted())->toBe('10.00 €');
expect(Money::fromDecimal(10.10, EUR::class)->formatted())->toBe('10.10 €');
expect(Money::fromDecimal(10.12, EUR::class)->formatted())->toBe('10.12 €');
});