Skip to content

Commit

Permalink
Merge pull request #9 from Setono/random-tests-fail
Browse files Browse the repository at this point in the history
Fix randomly failing tests
  • Loading branch information
Zales0123 authored Jun 19, 2024
2 parents c88432f + 5e3063c commit e6af646
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions tests/Functional/OrderUpdateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
use Sylius\Bundle\ApiBundle\Command\Checkout\CompleteOrder;
use Sylius\Bundle\ApiBundle\Command\Checkout\UpdateCart;
use Sylius\Component\Core\Model\Address;
use Sylius\Component\Core\Model\AdjustmentInterface;
use Sylius\Component\Core\Model\Order;
use Sylius\Component\Core\Model\OrderInterface;
use Sylius\Component\Core\Model\ProductVariantInterface;
Expand Down Expand Up @@ -88,21 +89,21 @@ public function testItAllowsToAddAndRemoveOrderItems(): void
public function testItAllowsToAddDiscountsForTheWholeOrder(): void
{
$order = $this->placeOrderProgramatically(quantity: 5);
$initialOrderTotal = $order->getInitialTotal();
$initialOrderTotalWithoutTaxes = $this->getInitialTotal($order);

$this->loginAsAdmin();
$this->addDiscountsToOrder($order->getId(), [1]);

self::assertResponseStatusCodeSame(302);

$order = $this->getOrderRepository()->findOneBy(['tokenValue' => 'TOKEN']);
self::assertSame($initialOrderTotal - 100, $order->getTotal());
self::assertSame($initialOrderTotalWithoutTaxes - 100, $this->getResultTotal($order));
}

public function testItAllowsToAddAndRemoveDiscountsForTheWholeOrderMultipleTimes(): void
{
$order = $this->placeOrderProgramatically(quantity: 5);
$initialOrderTotal = $order->getInitialTotal();
$initialOrderTotalWithoutTaxes = $this->getInitialTotal($order);

$this->loginAsAdmin();
$this->addDiscountsToOrder($order->getId(), [1]);
Expand All @@ -115,7 +116,7 @@ public function testItAllowsToAddAndRemoveDiscountsForTheWholeOrderMultipleTimes

/** @var EditableOrderInterface $order */
$order = $this->getOrderRepository()->findOneBy(['tokenValue' => 'TOKEN']);
self::assertSame($initialOrderTotal - 200, $order->getTotal());
self::assertSame($initialOrderTotalWithoutTaxes - 200, $this->getResultTotal($order));
self::assertSame(-200, $order->getAdjustmentsTotal(AdjustmentTypes::SETONO_ADMIN_ORDER_DISCOUNT));
}

Expand Down Expand Up @@ -144,16 +145,19 @@ public function testItDoesNotAllowToExceedTheInitialOrderTotal(): void

public function testItAllowsToAddDiscountsForTheSpecificOrderItem(): void
{
$this->makeVariantTrackedWithStockAndPrice('000F_office_grey_jeans-variant-0', 100);

$order = $this->placeOrderProgramatically(quantity: 5);
$initialOrderTotal = $order->getInitialTotal();
$initialOrderTotalWithoutTaxes = $this->getInitialTotal($order);

$this->loginAsAdmin();
$this->addDiscountsToOrderItem($order->getId(), [1]);

self::assertResponseStatusCodeSame(302);

/** @var OrderInterface $order */
$order = $this->getOrderRepository()->findOneBy(['tokenValue' => 'TOKEN']);
self::assertSame($initialOrderTotal - 100, $order->getTotal());
self::assertSame($initialOrderTotalWithoutTaxes - 100, $this->getResultTotal($order));
self::assertSame(0, $order->getAdjustmentsTotal(AdjustmentTypes::SETONO_ADMIN_ORDER_DISCOUNT));
self::assertSame(
-100,
Expand All @@ -163,8 +167,10 @@ public function testItAllowsToAddDiscountsForTheSpecificOrderItem(): void

public function testItAllowsToAddAndRemoveDiscountsForTheOrderItemMultipleTimes(): void
{
$this->makeVariantTrackedWithStockAndPrice('000F_office_grey_jeans-variant-0', 100);

$order = $this->placeOrderProgramatically(quantity: 5);
$initialOrderTotal = $order->getInitialTotal();
$initialOrderTotalWithoutTaxes = $this->getInitialTotal($order);

$this->loginAsAdmin();
$this->addDiscountsToOrderItem($order->getId(), [1]);
Expand All @@ -177,7 +183,7 @@ public function testItAllowsToAddAndRemoveDiscountsForTheOrderItemMultipleTimes(

/** @var EditableOrderInterface $order */
$order = $this->getOrderRepository()->findOneBy(['tokenValue' => 'TOKEN']);
self::assertSame($initialOrderTotal - 200, $order->getTotal());
self::assertSame($initialOrderTotalWithoutTaxes - 200, $this->getResultTotal($order));
self::assertSame(0, $order->getAdjustmentsTotal(AdjustmentTypes::SETONO_ADMIN_ORDER_DISCOUNT));
self::assertSame(
-200,
Expand Down Expand Up @@ -355,4 +361,14 @@ private function getEntityManager(): EntityManagerInterface
{
return self::getContainer()->get('doctrine.orm.entity_manager');
}

private function getInitialTotal(Order|InitialTotalAwareOrderInterface $order)
{
return $order->getInitialTotal() - $order->getAdjustmentsTotalRecursively(AdjustmentInterface::TAX_ADJUSTMENT);
}

private function getResultTotal(Order|InitialTotalAwareOrderInterface $order)
{
return $order->getTotal() - $order->getAdjustmentsTotalRecursively(AdjustmentInterface::TAX_ADJUSTMENT);
}
}

0 comments on commit e6af646

Please sign in to comment.