From b2f0c45936df67605a90c8c006be74c2157960a3 Mon Sep 17 00:00:00 2001 From: philippus Date: Sun, 26 May 2024 19:59:19 +0200 Subject: [PATCH] Test triggered circuit breaker during multisearch --- .../MultiSearchCircuitBreakerTest.scala | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/search/MultiSearchCircuitBreakerTest.scala diff --git a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/search/MultiSearchCircuitBreakerTest.scala b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/search/MultiSearchCircuitBreakerTest.scala new file mode 100644 index 0000000000..d1aa777df1 --- /dev/null +++ b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/search/MultiSearchCircuitBreakerTest.scala @@ -0,0 +1,37 @@ +package com.sksamuel.elastic4s.search + +import scala.util.Try + +import com.sksamuel.elastic4s.testkit.DockerTests +import org.scalatest.BeforeAndAfterAll +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class MultiSearchCircuitBreakerTest + extends AnyFlatSpec + with DockerTests + with Matchers + with BeforeAndAfterAll { + + override def beforeAll: Unit = + Try { + client.execute { + clusterTransientSettings(Map("indices.breaker.total.limit" -> "1b")) + }.await + } + + "a multi search request" should "return an error when the circuit breaker is triggered" in { + val request = multi(search("_all")) + val response = client.execute(request).await + response.isError shouldBe true + response.status shouldEqual 429 + response.error.`type` shouldBe "circuit_breaking_exception" + } + + override def afterAll: Unit = + Try { + client.execute { + clusterTransientSettings(Map("indices.breaker.total.limit" -> null)) + }.await + } +}