mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 12:02:05 +08:00
FIX: supports groups field in post_created_edited (#28773)
To achieve this this commit does the following: - create a new `groups field, ideally we would have reused the existing group field, but many automations now have the expectation that this field will return a group id and not an array of group ids, which makes it a dangerous change - alter the code in `post_created_edited` to use this new groups field and change the logic to use an array - migrate the existing group fields post_created_edited automations to change name from `restricted_group` to `restricted_groups`, the component from `group` to `groups` and the metadata from `{"value": integer}` to `{"value": [integer]}`
This commit is contained in:
@ -164,30 +164,50 @@ describe "PostCreatedEdited" do
|
||||
|
||||
context "when group is restricted" do
|
||||
fab!(:target_group) { Fabricate(:group, messageable_level: Group::ALIAS_LEVELS[:everyone]) }
|
||||
fab!(:another_group) { Fabricate(:group, messageable_level: Group::ALIAS_LEVELS[:everyone]) }
|
||||
|
||||
before do
|
||||
automation.upsert_field!(
|
||||
"restricted_group",
|
||||
"group",
|
||||
{ value: target_group.id },
|
||||
"restricted_groups",
|
||||
"groups",
|
||||
{ value: [target_group.id, another_group.id] },
|
||||
target: "trigger",
|
||||
)
|
||||
end
|
||||
|
||||
it "fires the trigger" do
|
||||
list =
|
||||
capture_contexts do
|
||||
PostCreator.create(
|
||||
user,
|
||||
basic_topic_params.merge(
|
||||
target_group_names: [target_group.name],
|
||||
archetype: Archetype.private_message,
|
||||
),
|
||||
)
|
||||
end
|
||||
context "when PM is not sent to the group" do
|
||||
it "doesnt fire the trigger" do
|
||||
list =
|
||||
capture_contexts do
|
||||
PostCreator.create(
|
||||
user,
|
||||
basic_topic_params.merge(
|
||||
target_group_names: [Fabricate(:group).name],
|
||||
archetype: Archetype.private_message,
|
||||
),
|
||||
)
|
||||
end
|
||||
|
||||
expect(list.length).to eq(1)
|
||||
expect(list[0]["kind"]).to eq("post_created_edited")
|
||||
expect(list.length).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
context "when PM is sent to the group" do
|
||||
it "fires the trigger" do
|
||||
list =
|
||||
capture_contexts do
|
||||
PostCreator.create(
|
||||
user,
|
||||
basic_topic_params.merge(
|
||||
target_group_names: [target_group.name],
|
||||
archetype: Archetype.private_message,
|
||||
),
|
||||
)
|
||||
end
|
||||
|
||||
expect(list.length).to eq(1)
|
||||
expect(list[0]["kind"]).to eq("post_created_edited")
|
||||
end
|
||||
end
|
||||
|
||||
context "when the topic is not a PM" do
|
||||
|
Reference in New Issue
Block a user