We are currently unable to deploy DonationInterface code without force-merging, due to one failing core test that calls our code and errors out.
You can see the error on this change.
To reproduce locally, run this test with the queue service turned off.
Here is the error:
1) SpecialPageFatalTest::testSpecialPageDoesNotFatal with data set "AdyenCheckoutGateway" (AdyenCheckoutGateway Object (...))
14:06:56 Error: Call to a member function getAccountConfig() on null
14:06:56
14:06:56 /workspace/src/extensions/DonationInterface/adyen_gateway/checkout/adyen_checkout_gateway.body.php:15
14:06:56 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php:107
14:06:56 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php:37
14:06:56 /workspace/src/tests/phpunit/structure/SpecialPageFatalTest.php:43
14:06:56 /workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php:446
14:06:56 /workspace/src/maintenance/doMaintenance.php:107
14:06:56 === Logs generated by test case
14:06:56 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
14:06:56 [localisation] [debug] LocalisationCache using store LCStoreNull []
14:06:56 [objectcache] [debug] MainWANObjectCache using store {class} {"class":"EmptyBagOStuff"}
14:06:56 [localisation] [debug] LocalisationCache::isExpired(en): cache missing, need to make one []
14:06:56 [adyen_gateway] [info] Constructing! Creating a new adapter of type: [AdyenCheckout] {"private":false}
14:06:56 [adyen_gateway] [info] Exception setting up GatewayPage with adapter class TestingAdyenCheckoutAdapter: Connection refused [tcp://127.0.0.1:6379]
14:06:56 #0 /workspace/src/vendor/predis/predis/src/Connection/StreamConnection.php(128): Predis\Connection\AbstractConnection->onConnectionError('Connection refu...', 111)
14:06:56 #1 /workspace/src/vendor/predis/predis/src/Connection/StreamConnection.php(178): Predis\Connection\StreamConnection->createStreamSocket(Object(Predis\Connection\Parameters), 'tcp://127.0.0.1...', 4)
14:06:56 #2 /workspace/src/vendor/predis/predis/src/Connection/StreamConnection.php(100): Predis\Connection\StreamConnection->tcpStreamInitializer(Object(Predis\Connection\Parameters))
14:06:56 #3 /workspace/src/vendor/predis/predis/src/Connection/AbstractConnection.php(81): Predis\Connection\StreamConnection->createResource()
14:06:56 #4 /workspace/src/vendor/predis/predis/src/Connection/StreamConnection.php(258): Predis\Connection\AbstractConnection->connect()
14:06:56 #5 /workspace/src/vendor/predis/predis/src/Connection/AbstractConnection.php(180): Predis\Connection\StreamConnection->connect()
14:06:56 #6 /workspace/src/vendor/predis/predis/src/Connection/StreamConnection.php(288): Predis\Connection\AbstractConnection->getResource()
14:06:56 #7 /workspace/src/vendor/predis/predis/src/Connection/StreamConnection.php(394): Predis\Connection\StreamConnection->write('*2\r\n$4\r\nINCR\r\n$...')
14:06:56 #8 /workspace/src/vendor/predis/predis/src/Connection/AbstractConnection.php(110): Predis\Connection\StreamConnection->writeRequest(Object(Predis\Command\StringIncrement))
14:06:56 #9 /workspace/src/vendor/predis/predis/src/Client.php(331): Predis\Connection\AbstractConnection->executeCommand(Object(Predis\Command\StringIncrement))
14:06:56 #10 /workspace/src/vendor/predis/predis/src/Client.php(314): Predis\Client->executeCommand(Object(Predis\Command\StringIncrement))
14:06:56 #11 /workspace/src/vendor/wikimedia/smash-pig/Core/SequenceGenerators/PredisSequenceGenerator.php(50): Predis\Client->__call('incr', Array)
14:06:56 #12 /workspace/src/extensions/DonationInterface/gateway_common/DonationData.php(884): SmashPig\Core\SequenceGenerators\PredisSequenceGenerator->getNext()
14:06:56 #13 /workspace/src/extensions/DonationInterface/gateway_common/DonationData.php(536): DonationData->getIdFromSequenceGenerator()
14:06:56 #14 /workspace/src/extensions/DonationInterface/gateway_common/DonationData.php(371): DonationData->handleContributionTrackingID()
14:06:56 #15 /workspace/src/extensions/DonationInterface/gateway_common/DonationData.php(172): DonationData->normalize()
14:06:56 #16 /workspace/src/extensions/DonationInterface/gateway_common/DonationData.php(135): DonationData->populateData(NULL)
14:06:56 #17 /workspace/src/extensions/DonationInterface/gateway_common/gateway.adapter.php(251): DonationData->__construct(Object(TestingAdyenCheckoutAdapter), NULL)
14:06:56 #18 /workspace/src/extensions/DonationInterface/gateway_common/GatewayPage.php(97): GatewayAdapter->__construct(Array)
14:06:56 #19 /workspace/src/extensions/DonationInterface/adyen_gateway/checkout/adyen_checkout_gateway.body.php(13): GatewayPage->execute('')
14:06:56 #20 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php(107): AdyenCheckoutGateway->execute('')
14:06:56 #21 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php(37): SpecialPageExecutor->getHTMLFromSpecialPage(Object(AdyenCheckoutGateway), '')
14:06:56 #22 /workspace/src/tests/phpunit/structure/SpecialPageFatalTest.php(43): SpecialPageExecutor->executeSpecialPage(Object(AdyenCheckoutGateway), '', NULL, 'qqx', Object(User))
14:06:56 #23 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestCase.php(1472): SpecialPageFatalTest->testSpecialPageDoesNotFatal(Object(AdyenCheckoutGateway))
14:06:56 #24 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestCase.php(1092): PHPUnit\Framework\TestCase->runTest()
14:06:56 #25 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestResult.php(703): PHPUnit\Framework\TestCase->runBare()
14:06:56 #26 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestCase.php(820): PHPUnit\Framework\TestResult->run(Object(SpecialPageFatalTest))
14:06:56 #27 /workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php(446): PHPUnit\Framework\TestCase->run(Object(PHPUnit\Framework\TestResult))
14:06:56 #28 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(627): MediaWikiIntegrationTestCase->run(Object(PHPUnit\Framework\TestResult))
14:06:56 #29 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(627): PHPUnit\Framework\TestSuite->run(Object(PHPUnit\Framework\TestResult))
14:06:56 #30 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(627): PHPUnit\Framework\TestSuite->run(Object(PHPUnit\Framework\TestResult))
14:06:56 #31 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(627): PHPUnit\Framework\TestSuite->run(Object(PHPUnit\Framework\TestResult))
14:06:56 #32 /workspace/src/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(656): PHPUnit\Framework\TestSuite->run(Object(PHPUnit\Framework\TestResult))
14:06:56 #33 /workspace/src/vendor/phpunit/phpunit/src/TextUI/Command.php(236): PHPUnit\TextUI\TestRunner->doRun(Object(PHPUnit\Framework\TestSuite), Array, Array, true)
14:06:56 #34 /workspace/src/tests/phpunit/phpunit.php(75): PHPUnit\TextUI\Command->run(Array, true)
14:06:56 #35 /workspace/src/maintenance/doMaintenance.php(107): PHPUnitMaintClass->execute()
14:06:56 #36 /workspace/src/tests/phpunit/phpunit.php(134): require('/workspace/src/...')
14:06:56 #37 {main} {"private":false}
14:06:56 [adyen_gateway] [info] Redirecting to [http://127.0.0.1:9412/index.php/Donate-error?uselang=en] {"private":false}