This repository was archived by the owner on Jul 22, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +41
-2
lines changed
spec/lib/modules/ai_helper Expand file tree Collapse file tree 2 files changed +41
-2
lines changed Original file line number Diff line number Diff line change @@ -60,7 +60,7 @@ def available_prompts(user)
6060
6161 def custom_locale_instructions ( user = nil , force_default_locale )
6262 locale = SiteSetting . default_locale
63- locale = user . effective_locale if !force_default_locale
63+ locale = user . effective_locale if !force_default_locale && user
6464 locale_hash = LocaleSiteSetting . language_names [ locale ]
6565
6666 if locale != "en" && locale_hash
@@ -71,7 +71,7 @@ def custom_locale_instructions(user = nil, force_default_locale)
7171 end
7272 end
7373
74- def localize_prompt! ( prompt , user = nil , force_default_locale )
74+ def localize_prompt! ( prompt , user = nil , force_default_locale = false )
7575 locale_instructions = custom_locale_instructions ( user , force_default_locale )
7676 if locale_instructions
7777 prompt . messages [ 0 ] [ :content ] = prompt . messages [ 0 ] [ :content ] + locale_instructions
Original file line number Diff line number Diff line change 141141
142142 expect ( prompt . messages [ 0 ] [ :content ] . strip ) . to eq ( "This is a English (US) test" )
143143 end
144+
145+ context "with temporal context" do
146+ let ( :prompt ) do
147+ CompletionPrompt . new (
148+ messages : {
149+ insts : "Current context: {{temporal_context}}" ,
150+ } ,
151+ ) . messages_with_input ( "test" )
152+ end
153+
154+ it "replaces temporal context with timezone information" do
155+ timezone = "America/New_York"
156+ user . user_option . update! ( timezone : timezone )
157+ freeze_time "2024-01-01 12:00:00"
158+
159+ subject . localize_prompt! ( prompt , user )
160+
161+ content = prompt . messages [ 0 ] [ :content ]
162+
163+ expect ( content ) . to include ( %("timezone":"America/New_York") )
164+ end
165+
166+ it "uses UTC as default timezone when user timezone is not set" do
167+ user . user_option . update! ( timezone : nil )
168+
169+ freeze_time "2024-01-01 12:00:00" do
170+ subject . localize_prompt! ( prompt , user )
171+
172+ parsed_context = JSON . parse ( prompt . messages [ 0 ] [ :content ] . match ( /context: (.+)$/ ) [ 1 ] )
173+ expect ( parsed_context [ "user" ] [ "timezone" ] ) . to eq ( "UTC" )
174+ end
175+ end
176+
177+ it "does not replace temporal context when user is nil" do
178+ prompt_content = prompt . messages [ 0 ] [ :content ] . dup
179+ subject . localize_prompt! ( prompt , nil )
180+ expect ( prompt . messages [ 0 ] [ :content ] ) . to eq ( prompt_content )
181+ end
182+ end
144183 end
145184
146185 describe "#generate_and_send_prompt" do
You can’t perform that action at this time.
0 commit comments