From 36fbdd91aaf8167eecbb7bf4811cae6390772b09 Mon Sep 17 00:00:00 2001 From: Christian Sutter Date: Fri, 7 Feb 2025 16:01:13 +0000 Subject: [PATCH] Make serving config optionally dynamic This adds the ability to switch to a different serving config from the default one using a `serving_config` query parameter. This will allow us to build a feature in Finder Frontend for internal users to preview changes to serving configs. --- app/services/discovery_engine/query/search.rb | 4 +++- spec/services/discovery_engine/query/search_spec.rb | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/services/discovery_engine/query/search.rb b/app/services/discovery_engine/query/search.rb index 94d4853..5901d6f 100644 --- a/app/services/discovery_engine/query/search.rb +++ b/app/services/discovery_engine/query/search.rb @@ -56,7 +56,9 @@ def query end def serving_config - ServingConfig.default.name + return ServingConfig.default.name if query_params[:serving_config].blank? + + ServingConfig.new(query_params[:serving_config]).name end def page_size diff --git a/spec/services/discovery_engine/query/search_spec.rb b/spec/services/discovery_engine/query/search_spec.rb index ec3353e..211abcc 100644 --- a/spec/services/discovery_engine/query/search_spec.rb +++ b/spec/services/discovery_engine/query/search_spec.rb @@ -204,6 +204,16 @@ ) end end + + context "when a serving config is manually specified" do + let(:query_params) { { q: "garden centres", serving_config: "preview" } } + + it "calls the client with the expected parameters" do + expect(client).to have_received(:search).with( + hash_including(serving_config: ServingConfig.new("preview").name), + ) + end + end end end end