mirror of
https://github.com/discourse/discourse-data-explorer.git
synced 2025-03-06 17:39:08 +00:00
62 lines
1.8 KiB
Ruby
62 lines
1.8 KiB
Ruby
|
require 'rails_helper'
|
||
|
|
||
|
describe Guardian do
|
||
|
|
||
|
def make_query(group_ids = [])
|
||
|
q = DataExplorer::Query.new
|
||
|
q.id = Fabrication::Sequencer.sequence("query-id", 1)
|
||
|
q.name ="Query number #{q.id}"
|
||
|
q.sql = "SELECT 1"
|
||
|
q.group_ids = group_ids
|
||
|
q.save
|
||
|
q
|
||
|
end
|
||
|
|
||
|
let(:user) { build(:user) }
|
||
|
let(:admin) { build(:admin) }
|
||
|
|
||
|
describe "#user_is_a_member_of_group?" do
|
||
|
let(:group) { Fabricate(:group) }
|
||
|
|
||
|
it "is true when the user is an admin" do
|
||
|
expect(Guardian.new(admin).user_is_a_member_of_group?(group)).to eq(true)
|
||
|
end
|
||
|
|
||
|
it "is true when the user is not an admin, but is a member of the group" do
|
||
|
group.add(user)
|
||
|
|
||
|
expect(Guardian.new(user).user_is_a_member_of_group?(group)).to eq(true)
|
||
|
end
|
||
|
|
||
|
it "is false when the user is not an admin, and is not a member of the group" do
|
||
|
expect(Guardian.new(user).user_is_a_member_of_group?(group)).to eq(false)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe "#user_can_access_query?" do
|
||
|
let(:group) { Fabricate(:group) }
|
||
|
|
||
|
it "is true if the user is an admin" do
|
||
|
expect(Guardian.new(admin).user_can_access_query?(group, make_query)).to eq(true)
|
||
|
end
|
||
|
|
||
|
it "is true if the user is a member of the group, and query contains the group id" do
|
||
|
query = make_query(["#{group.id}"])
|
||
|
group.add(user)
|
||
|
|
||
|
expect(Guardian.new(user).user_can_access_query?(group, query)).to eq(true)
|
||
|
end
|
||
|
|
||
|
it "is false if the query does not contain the group id" do
|
||
|
group.add(user)
|
||
|
|
||
|
expect(Guardian.new(user).user_can_access_query?(group, make_query)).to eq(false)
|
||
|
end
|
||
|
|
||
|
it "is false if the user is not member of the group" do
|
||
|
query = make_query(["#{group.id}"])
|
||
|
|
||
|
expect(Guardian.new(user).user_can_access_query?(group, query)).to eq(false)
|
||
|
end
|
||
|
end
|
||
|
end
|