85 lines
2.4 KiB
Ruby
85 lines
2.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe GroupHistory do
|
|
fab!(:group_history)
|
|
|
|
let(:other_group_history) do
|
|
Fabricate(
|
|
:group_history,
|
|
action: GroupHistory.actions[:remove_user_from_group],
|
|
group: group_history.group,
|
|
)
|
|
end
|
|
|
|
describe ".with_filters" do
|
|
it "should return the right records" do
|
|
expect(described_class.with_filters(group_history.group)).to eq([group_history])
|
|
end
|
|
|
|
it "should filter by action correctly" do
|
|
other_group_history
|
|
|
|
expect(
|
|
described_class.with_filters(group_history.group, action: GroupHistory.actions[3]),
|
|
).to eq([other_group_history])
|
|
end
|
|
|
|
it "should filter by subject correctly" do
|
|
other_group_history.update!(subject: "test")
|
|
|
|
expect(described_class.with_filters(group_history.group, subject: "test")).to eq(
|
|
[other_group_history],
|
|
)
|
|
end
|
|
|
|
it "should filter by multiple filters correctly" do
|
|
group_history.update!(action: GroupHistory.actions[:remove_user_from_group])
|
|
other_group_history.update!(subject: "test")
|
|
|
|
expect(
|
|
described_class.with_filters(
|
|
group_history.group,
|
|
action: GroupHistory.actions[3],
|
|
subject: "test",
|
|
),
|
|
).to eq([other_group_history])
|
|
end
|
|
|
|
it "should filter by target_user and acting_user correctly" do
|
|
group_history
|
|
other_group_history
|
|
|
|
group_history_3 =
|
|
Fabricate(
|
|
:group_history,
|
|
group: group_history.group,
|
|
acting_user: other_group_history.acting_user,
|
|
target_user: other_group_history.target_user,
|
|
action: GroupHistory.actions[:remove_user_as_group_owner],
|
|
)
|
|
|
|
expect(
|
|
described_class.with_filters(
|
|
group_history.group,
|
|
target_user: other_group_history.target_user.username,
|
|
).sort,
|
|
).to eq([other_group_history, group_history_3])
|
|
|
|
expect(
|
|
described_class.with_filters(
|
|
group_history.group,
|
|
acting_user: group_history.acting_user.username,
|
|
),
|
|
).to eq([group_history])
|
|
|
|
expect(
|
|
described_class.with_filters(
|
|
group_history.group,
|
|
acting_user: group_history_3.acting_user.username,
|
|
target_user: other_group_history.target_user.username,
|
|
).sort,
|
|
).to eq([other_group_history, group_history_3])
|
|
end
|
|
end
|
|
end
|