refactor: use assertEqualsWithDelta for float comparisons, add @internal to fake()

Replace Assert::assertEquals with Assert::assertEqualsWithDelta (epsilon 0.0001)
in assertSubTotal, assertTotal, and assertTotalQuantity to avoid IEEE 754
floating-point equality pitfalls. Add @internal docblock to fake() to signal
it is test-only. Add regression test for consecutive withItems calls.
This commit is contained in:
Joel Male
2026-05-27 21:35:49 +10:00
parent 8d04d18b48
commit a485bfb6f0
2 changed files with 20 additions and 6 deletions
+8
View File
@@ -58,6 +58,14 @@ function makeCartForFactory(): Cart
expect(array_unique($ids))->toHaveCount(3);
});
test('consecutive withItems calls produce unique IDs', function () {
$this->factory->withItems(2)->withItems(2);
$ids = $this->cart->getContent()->keys()->toArray();
expect(array_unique($ids))->toHaveCount(4);
expect($this->cart->getContent()->count())->toBe(4);
});
test('withCoupon adds a coupon condition to the cart', function () {
$coupon = new class extends \Wearepixel\Cart\Coupons\Coupon {
protected string $code = 'SAVE10';