topic spec - need to add permissions and fix 2 failing tests

This commit is contained in:
Devin Howard 2015-12-17 23:45:38 +08:00
parent 9522c30273
commit cf6411988d
4 changed files with 57 additions and 3 deletions

View file

@ -0,0 +1,4 @@
FactoryGirl.define do
factory :metacode do
end
end

View file

@ -3,7 +3,7 @@ FactoryGirl.define do
desc { random_string(10) }
category :to
permission :commons
association :node1, factory: :topic
association :node2, factory: :topic
association :topic1, factory: :topic
association :topic2, factory: :topic
end
end

View file

@ -2,5 +2,7 @@ FactoryGirl.define do
factory :topic do
name { random_string(10) }
permission :commons
user
metacode
end
end

View file

@ -1,5 +1,53 @@
require 'rails_helper'
RSpec.describe Topic, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
it { is_expected.to belong_to :user }
it { is_expected.to belong_to :metacode }
it { is_expected.to have_many :maps }
context 'has_viewable_synapses function' do
let (:user) { create(:user) }
let (:other_user) { create(:user) }
context 'topic with no synapses' do
let (:topic) { create(:topic) }
it 'returns false' do
expect(topic.has_viewable_synapses(user)).to eq false
end
end
context 'topic with one unpermitted synapse' do
let (:topic) { create(:topic) }
let (:synapse) { create(:synapse, permission: :private, topic1: topic, user: other_user) }
it 'returns false' do
expect(topic.has_viewable_synapses(user)).to eq false
end
end
context 'topic with one permitted synapse' do
let (:topic) { create(:topic) }
let (:synapse) { create(:synapse, permission: :private, topic1: topic, user: user) }
it 'returns true' do
expect(topic.has_viewable_synapses(user)).to eq true
end
end
context 'topic with one unpermitted, one permitted synapse' do
let (:topic) { create(:topic) }
let (:synapse1) { create(:synapse, permission: :private, topic1: topic, user: other_user) }
let (:synapse2) { create(:synapse, permission: :private, topic1: topic, user: user) }
it 'returns true' do
expect(topic.synapses.count).to eq 2
expect(topic.has_viewable_synapses(user)).to eq true
end
end
end
context 'permssions' do
pending "TODO"
end
end