From d01f8e1c3506d88cecee26dd871f90012f0f1765 Mon Sep 17 00:00:00 2001 From: mziolekda Date: Fri, 17 Sep 2021 08:49:35 +0200 Subject: [PATCH] Fix flaky ApiConfigManagementServiceSpec test (#10922) * Fix flaky ApiConfigManagementServiceSpec test. CHANGELOG_BEGIN CHANGELOG_END * format code --- .../services/admin/ApiConfigManagementServiceSpec.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ledger/participant-integration-api/src/test/suite/scala/db/migration/translation/apiserver/services/admin/ApiConfigManagementServiceSpec.scala b/ledger/participant-integration-api/src/test/suite/scala/db/migration/translation/apiserver/services/admin/ApiConfigManagementServiceSpec.scala index c6460eccbf..8d2f7aaee8 100644 --- a/ledger/participant-integration-api/src/test/suite/scala/db/migration/translation/apiserver/services/admin/ApiConfigManagementServiceSpec.scala +++ b/ledger/participant-integration-api/src/test/suite/scala/db/migration/translation/apiserver/services/admin/ApiConfigManagementServiceSpec.scala @@ -38,7 +38,8 @@ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AsyncWordSpec import scala.collection.immutable -import scala.concurrent.Future +import scala.concurrent.{Await, Future, Promise} +import scala.concurrent.duration.{Duration => ScalaDuration} import scala.util.{Failure, Success} class ApiConfigManagementServiceSpec @@ -321,16 +322,19 @@ object ApiConfigManagementServiceSpec { val currentConfiguration = new AtomicReference[Option[(LedgerOffset.Absolute, Configuration)]](None) - val indexService = new IndexConfigManagementService { + val indexService: IndexConfigManagementService = new IndexConfigManagementService { + private val atLeastOneConfig = Promise[Unit]() private val source = configurationSource .map { case (offset, submissionId, configuration) => val ledgerOffset = LedgerOffset.Absolute(Ref.LedgerString.assertFromString(offset.toString)) currentConfiguration.set(Some(ledgerOffset -> configuration)) + atLeastOneConfig.trySuccess(()) val entry = ConfigurationEntry.Accepted(submissionId, configuration) ledgerOffset -> entry } .preMaterialize() + Await.result(atLeastOneConfig.future, ScalaDuration.Inf) override def lookupConfiguration()(implicit loggingContext: LoggingContext