DEV: correct flaky spec (#475)
We were not properly expiring prompt cache
This commit is contained in:
parent
0fb87b00e2
commit
1f74a77e17
|
@ -17,6 +17,8 @@ class CompletionPrompt < ActiveRecord::Base
|
||||||
validates :messages, length: { maximum: 20 }
|
validates :messages, length: { maximum: 20 }
|
||||||
validate :each_message_length
|
validate :each_message_length
|
||||||
|
|
||||||
|
after_commit { DiscourseAi::AiHelper::Assistant.clear_prompt_cache! }
|
||||||
|
|
||||||
def self.enabled_by_name(name)
|
def self.enabled_by_name(name)
|
||||||
where(enabled: true).find_by(name: name)
|
where(enabled: true).find_by(name: name)
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,10 +5,14 @@ module DiscourseAi
|
||||||
class Assistant
|
class Assistant
|
||||||
AI_HELPER_PROMPTS_CACHE_KEY = "ai_helper_prompts"
|
AI_HELPER_PROMPTS_CACHE_KEY = "ai_helper_prompts"
|
||||||
|
|
||||||
|
def self.clear_prompt_cache!
|
||||||
|
Discourse.cache.delete(AI_HELPER_PROMPTS_CACHE_KEY)
|
||||||
|
end
|
||||||
|
|
||||||
def available_prompts
|
def available_prompts
|
||||||
Discourse
|
Discourse
|
||||||
.cache
|
.cache
|
||||||
.fetch(AI_HELPER_PROMPTS_CACHE_KEY) do
|
.fetch(AI_HELPER_PROMPTS_CACHE_KEY, expires_in: 30.minutes) do
|
||||||
prompts = CompletionPrompt.where(enabled: true)
|
prompts = CompletionPrompt.where(enabled: true)
|
||||||
|
|
||||||
# Hide illustrate_post if disabled
|
# Hide illustrate_post if disabled
|
||||||
|
|
|
@ -15,7 +15,7 @@ RSpec.describe DiscourseAi::AiHelper::Assistant do
|
||||||
describe("#available_prompts") do
|
describe("#available_prompts") do
|
||||||
before do
|
before do
|
||||||
SiteSetting.ai_helper_illustrate_post_model = "disabled"
|
SiteSetting.ai_helper_illustrate_post_model = "disabled"
|
||||||
Discourse.cache.delete(DiscourseAi::AiHelper::Assistant::AI_HELPER_PROMPTS_CACHE_KEY)
|
DiscourseAi::AiHelper::Assistant.clear_prompt_cache!
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns all available prompts" do
|
it "returns all available prompts" do
|
||||||
|
@ -35,7 +35,7 @@ RSpec.describe DiscourseAi::AiHelper::Assistant do
|
||||||
context "when illustrate post model is enabled" do
|
context "when illustrate post model is enabled" do
|
||||||
before do
|
before do
|
||||||
SiteSetting.ai_helper_illustrate_post_model = "stable_diffusion_xl"
|
SiteSetting.ai_helper_illustrate_post_model = "stable_diffusion_xl"
|
||||||
Discourse.cache.delete(DiscourseAi::AiHelper::Assistant::AI_HELPER_PROMPTS_CACHE_KEY)
|
DiscourseAi::AiHelper::Assistant.clear_prompt_cache!
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns the illustrate_post prompt in the list of all prompts" do
|
it "returns the illustrate_post prompt in the list of all prompts" do
|
||||||
|
|
|
@ -32,6 +32,8 @@ describe Plugin::Instance do
|
||||||
SiteSetting.composer_ai_helper_enabled = true
|
SiteSetting.composer_ai_helper_enabled = true
|
||||||
SiteSetting.ai_helper_illustrate_post_model = "disabled"
|
SiteSetting.ai_helper_illustrate_post_model = "disabled"
|
||||||
Group.find_by(id: Group::AUTO_GROUPS[:admins]).add(user)
|
Group.find_by(id: Group::AUTO_GROUPS[:admins]).add(user)
|
||||||
|
|
||||||
|
DiscourseAi::AiHelper::Assistant.clear_prompt_cache!
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:serializer) { CurrentUserSerializer.new(user, scope: Guardian.new(user)) }
|
let(:serializer) { CurrentUserSerializer.new(user, scope: Guardian.new(user)) }
|
||||||
|
|
Loading…
Reference in New Issue