discourse/plugins/automation/spec/triggers/topic_spec.rb
Osama Sayegh 3be4924b99
DEV: Move array type custom fields to JSON type in automation (#26939)
The automation plugin has 4 custom field types that are array typed. However, array typed custom fields are deprecated and should be migrated to JSON type.

This commit does a couple of things:

1. Migrate all four custom fields to JSON
2. Fix a couple of small bugs that have been discovered while migrating the custom fields to JSON (see the comments on this commit's PR for details https://github.com/discourse/discourse/pull/26939)
2024-05-10 18:47:12 +03:00

34 lines
901 B
Ruby

# frozen_string_literal: true
describe "TopicRequiredWords" do
fab!(:user)
fab!(:topic)
fab!(:automation) do
Fabricate(
:automation,
script: DiscourseAutomation::Scripts::TOPIC_REQUIRED_WORDS,
trigger: DiscourseAutomation::Triggers::TOPIC,
)
end
context "when updating trigger" do
it "updates the custom field" do
automation.upsert_field!("restricted_topic", "text", { value: topic.id }, target: "trigger")
expect(topic.custom_fields[DiscourseAutomation::AUTOMATION_IDS_CUSTOM_FIELD]).to eq(
[automation.id],
)
new_topic = create_topic
automation.upsert_field!(
"restricted_topic",
"text",
{ value: new_topic.id },
target: "trigger",
)
expect(new_topic.custom_fields[DiscourseAutomation::AUTOMATION_IDS_CUSTOM_FIELD]).to eq(
[automation.id],
)
end
end
end