From 8edf58dc298f48ee70d646852546237c2c75ef2a Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Sat, 11 May 2024 16:21:53 +0530 Subject: [PATCH] Fix iats test failure --- .../ContributionIatsTest.php | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/tests/src/FunctionalJavascript/ContributionIatsTest.php b/tests/src/FunctionalJavascript/ContributionIatsTest.php index c437dec2f..c0c668bc2 100644 --- a/tests/src/FunctionalJavascript/ContributionIatsTest.php +++ b/tests/src/FunctionalJavascript/ContributionIatsTest.php @@ -364,27 +364,18 @@ public function testSubmitACHEFTContribution() { $this->drupalGet(Url::fromRoute('entity.webform.civicrm', [ 'webform' => $this->webform->id(), ])); - // The label has a
in it which can cause weird failures here. - $this->assertSession()->waitForText('Enable CiviCRM Processing'); - $this->assertSession()->waitForField('nid'); - $this->getSession()->getPage()->checkField('nid'); - $this->getSession()->getPage()->clickLink('Contribution'); - $this->getSession()->getPage()->selectFieldOption('civicrm_1_contribution_1_contribution_enable_contribution', 1); - $this->assertSession()->assertWaitOnAjaxRequest(); - $this->assertSession()->pageTextContains('You must enable an email field for Contact 1 in order to process transactions.'); - $this->getSession()->getPage()->pressButton('Enable It'); - $this->assertSession()->assertWaitOnAjaxRequest(); - $this->getSession()->getPage()->checkField('Contribution Amount'); - $this->getSession()->getPage()->selectFieldOption('Currency', 'USD'); - $this->getSession()->getPage()->selectFieldOption('Financial Type', 1); + $this->enableCivicrmOnWebform(); + $params = [ + 'payment_processor_id' => $this->payment_processor_legacy_acheft['id'], + ]; + $this->configureContributionTab($params); + $this->getSession()->getPage()->checkField('Contribution Amount'); $this->assertCount(5, $this->getOptions('Payment Processor')); - $this->getSession()->getPage()->selectFieldOption('Payment Processor', $this->payment_processor_legacy_acheft['id']); $this->enableBillingSection(); - $this->getSession()->getPage()->pressButton('Save Settings'); - $this->assertSession()->pageTextContains('Saved CiviCRM settings'); + $this->saveCiviCRMSettings(); $this->drupalGet($this->webform->toUrl('canonical')); $this->assertPageNoErrorMessages(); @@ -400,13 +391,6 @@ public function testSubmitACHEFTContribution() { $this->htmlOutput(); $this->assertSession()->elementTextContains('css', '#wf-crm-billing-total', '99.00'); - // Wait for the ACHEFT form to load in. - $this->assertSession()->waitForField('account_holder'); - $this->getSession()->getPage()->fillField('Account Holder', 'CiviCRM user'); - $this->getSession()->getPage()->fillField('Account No.', '12345678'); - $this->getSession()->getPage()->fillField('Bank Identification Number', '111111111'); - $this->getSession()->getPage()->fillField('Bank Name', 'Bank of CiviCRM'); - $this->getSession()->getPage()->selectFieldOption('bank_account_type', 'Savings'); $billingValues = [ 'first_name' => 'Frederick', 'last_name' => 'Pabst', @@ -417,6 +401,15 @@ public function testSubmitACHEFTContribution() { 'postal_code' => '53177', ]; $this->fillBillingFields($billingValues); + // Wait for the ACHEFT form to load in. + $this->getSession()->wait(5000); + $this->assertSession()->waitForElementVisible('css', '#account_holder'); + + $this->getSession()->getPage()->fillField('bank_account_number', '12345678'); + $this->getSession()->getPage()->fillField('bank_identification_number', '111111111'); + $this->getSession()->getPage()->fillField('bank_name', 'Bank of CiviCRM'); + $this->getSession()->getPage()->fillField('account_holder', 'CiviCRM user'); + $this->getSession()->getPage()->selectFieldOption('bank_account_type', 'Savings'); $this->getSession()->getPage()->pressButton('Submit'); $api_result = $this->utils->wf_civicrm_api('contribution', 'get', [ @@ -430,7 +423,6 @@ public function testSubmitACHEFTContribution() { $this->assertEquals('99.00', $contribution['total_amount']); $this->assertEquals('Pending', $contribution['contribution_status']); $this->assertEquals('USD', $contribution['currency']); - } public function testSubmitRecurringContribution() {