2019-04-29 20:27:42 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-12-11 10:36:15 -05:00
|
|
|
RSpec.describe GroupActionLogger do
|
2023-06-21 10:00:19 -04:00
|
|
|
subject(:logger) { described_class.new(group_owner, group) }
|
|
|
|
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:group_owner) { Fabricate(:user) }
|
2023-11-09 17:47:59 -05:00
|
|
|
fab!(:group)
|
|
|
|
fab!(:user)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
|
|
|
before { group.add_owner(group_owner) }
|
|
|
|
|
|
|
|
describe "#log_make_user_group_owner" do
|
|
|
|
it "should create the right record" do
|
2023-06-21 10:00:19 -04:00
|
|
|
logger.log_make_user_group_owner(user)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
|
|
|
group_history = GroupHistory.last
|
|
|
|
|
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:make_user_group_owner])
|
|
|
|
expect(group_history.acting_user).to eq(group_owner)
|
|
|
|
expect(group_history.target_user).to eq(user)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#log_remove_user_as_group_owner" do
|
|
|
|
it "should create the right record" do
|
2023-06-21 10:00:19 -04:00
|
|
|
logger.log_remove_user_as_group_owner(user)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
|
|
|
group_history = GroupHistory.last
|
|
|
|
|
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:remove_user_as_group_owner])
|
|
|
|
expect(group_history.acting_user).to eq(group_owner)
|
|
|
|
expect(group_history.target_user).to eq(user)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#log_add_user_to_group" do
|
2022-07-27 12:14:14 -04:00
|
|
|
context "as a group owner" do
|
2017-07-27 22:37:10 -04:00
|
|
|
it "should create the right record" do
|
2023-06-21 10:00:19 -04:00
|
|
|
logger.log_add_user_to_group(user)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
2017-07-27 22:37:10 -04:00
|
|
|
group_history = GroupHistory.last
|
2016-12-11 10:36:15 -05:00
|
|
|
|
2017-07-27 22:37:10 -04:00
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:add_user_to_group])
|
|
|
|
expect(group_history.acting_user).to eq(group_owner)
|
|
|
|
expect(group_history.target_user).to eq(user)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "as a normal user" do
|
2023-06-21 10:00:19 -04:00
|
|
|
subject(:logger) { described_class.new(user, group) }
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
before { group.update!(public_admission: true) }
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
it "should create the right record" do
|
2023-06-21 10:00:19 -04:00
|
|
|
logger.log_add_user_to_group(user)
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
group_history = GroupHistory.last
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:add_user_to_group])
|
|
|
|
expect(group_history.acting_user).to eq(user)
|
|
|
|
expect(group_history.target_user).to eq(user)
|
2017-07-27 22:37:10 -04:00
|
|
|
end
|
2016-12-11 10:36:15 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#log_remove_user_from_group" do
|
2022-07-27 12:14:14 -04:00
|
|
|
context "as group owner" do
|
2017-07-27 22:37:10 -04:00
|
|
|
it "should create the right record" do
|
2023-06-21 10:00:19 -04:00
|
|
|
logger.log_remove_user_from_group(user)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
2017-07-27 22:37:10 -04:00
|
|
|
group_history = GroupHistory.last
|
2016-12-11 10:36:15 -05:00
|
|
|
|
2017-07-27 22:37:10 -04:00
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:remove_user_from_group])
|
|
|
|
expect(group_history.acting_user).to eq(group_owner)
|
|
|
|
expect(group_history.target_user).to eq(user)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "as a normal user" do
|
2023-06-21 10:00:19 -04:00
|
|
|
subject(:logger) { described_class.new(user, group) }
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
before { group.update!(public_exit: true) }
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
it "should create the right record" do
|
2023-06-21 10:00:19 -04:00
|
|
|
logger.log_remove_user_from_group(user)
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
group_history = GroupHistory.last
|
2017-07-27 22:37:10 -04:00
|
|
|
|
2021-07-28 07:04:04 -04:00
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:remove_user_from_group])
|
|
|
|
expect(group_history.acting_user).to eq(user)
|
|
|
|
expect(group_history.target_user).to eq(user)
|
2017-07-27 22:37:10 -04:00
|
|
|
end
|
2016-12-11 10:36:15 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#log_change_group_settings" do
|
|
|
|
it "should create the right record" do
|
2019-04-29 03:32:25 -04:00
|
|
|
group.update!(public_admission: true, created_at: Time.zone.now)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
2023-06-21 10:00:19 -04:00
|
|
|
expect { logger.log_change_group_settings }.to change { GroupHistory.count }.by(1)
|
2016-12-11 10:36:15 -05:00
|
|
|
|
|
|
|
group_history = GroupHistory.last
|
|
|
|
|
|
|
|
expect(group_history.action).to eq(GroupHistory.actions[:change_group_setting])
|
|
|
|
expect(group_history.acting_user).to eq(group_owner)
|
2017-07-27 22:37:10 -04:00
|
|
|
expect(group_history.subject).to eq("public_admission")
|
2016-12-11 10:36:15 -05:00
|
|
|
expect(group_history.prev_value).to eq("f")
|
|
|
|
expect(group_history.new_value).to eq("t")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|