Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit 718ec31

Browse files
committed
add specs
1 parent 728e7b6 commit 718ec31

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

lib/ai_helper/assistant.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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

spec/lib/modules/ai_helper/assistant_spec.rb

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,45 @@
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

0 commit comments

Comments
 (0)