Skip to content

Commit

Permalink
Fix events test (#13)
Browse files Browse the repository at this point in the history
Make event tests more resilient

---------

Co-authored-by: Michal Schielmann <michal.schielmann@shift4.com>
  • Loading branch information
mschielmann and Michal Schielmann authored Sep 10, 2024
1 parent 6fe6dc3 commit f992dad
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ jobs:
- name: PHP Composer
uses: php-actions/composer@v6
- name: Tests
uses: php-actions/phpunit@v3
uses: php-actions/phpunit@v3.0.0
with:
args: tests
test_suffix: Test.php
env:
SECRET_KEY: ${{ secrets.SECRET_KEY }}
PUBLIC_KEY: ${{ secrets.PUBLIC_KEY }}
21 changes: 10 additions & 11 deletions tests/EventTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@ function testRetrieveEvent()
$chargeRequest = Data::chargeRequest();
$charge = $this->gateway->createCharge($chargeRequest);

$eventId = $this->gateway->listEvents()->getList()[0]->getId();
$events = $this->gateway->listEvents();
$expectedEvent = array_filter($events->getList(), function ($event) use ($charge) {
return $event->getData()->getId() === $charge->getId() && $event->getType() === 'CHARGE_SUCCEEDED';
})[0];

// when
$event = $this->gateway->retrieveEvent($eventId);
$event = $this->gateway->retrieveEvent($expectedEvent->getId());

// then
Assert::assertChargeSucceededEvent($chargeRequest, $event);
Expand All @@ -34,20 +37,16 @@ function testListEvents()

$listRequest = (new EventListRequest())
->includeTotalCount(true)
->created((new CreatedFilter())->gte($charge1->getCreated()));
->limit(100);

// when
$list = $this->gateway->listEvents($listRequest);

// then
self::assertTrue($list->getTotalCount() >= 3);
$eventsForCreatedCharges = array_filter($list->getList(), function($charge) use ($expectedChargeIds)
{
return in_array($charge->getData()->getId(), $expectedChargeIds);
self::assertGreaterThanOrEqual(3, $list->getTotalCount());
$eventsForCreatedCharges = array_filter($list->getList(), function ($event) use ($expectedChargeIds) {
return in_array($event->getData()->getId(), $expectedChargeIds) && $event->getType() === 'CHARGE_SUCCEEDED';
});
self::assertTrue(sizeOf($eventsForCreatedCharges) == 3);
foreach ($eventsForCreatedCharges as $event) {
Assert::assertEquals('CHARGE_SUCCEEDED', $event->getType());
}
self::assertEquals(3, sizeOf($eventsForCreatedCharges));
}
}
4 changes: 3 additions & 1 deletion tests/utils/Assert.php
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,9 @@ public static function assertValidCheckoutRequest($signedCheckoutRequest)
$checkoutPage = file_get_contents($checkoutUrl);

$hasError = (strpos($checkoutPage, 'data-error-message') !== false);
self::assertFalse($hasError);
$error = substr($checkoutPage, strpos($checkoutPage, 'data-error-message'));
$error = substr($error, 0, strpos($error, "\">") + 1);
self::assertFalse($hasError, "Error for checkout url $checkoutUrl: $error");

$hasInput = (strpos($checkoutPage, '<input') !== false);
self::assertTrue($hasInput);
Expand Down

0 comments on commit f992dad

Please sign in to comment.