summaryrefslogtreecommitdiff
path: root/spec/models/concerns/issuable_spec.rb
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-12-14 19:39:53 -0200
committerFelipe Artur <felipefac@gmail.com>2016-12-27 19:25:17 -0200
commit1b082a4c338d7575e15d7450906801db59873441 (patch)
tree1b5081ce55b63436082b038f499a8c54172fc75a /spec/models/concerns/issuable_spec.rb
parent77deeb12f74b857f9356168ccdf92612fc85fe84 (diff)
downloadgitlab-ce-1b082a4c338d7575e15d7450906801db59873441.tar.gz
Check if user can read issue before being assignedissue_22664
Diffstat (limited to 'spec/models/concerns/issuable_spec.rb')
-rw-r--r--spec/models/concerns/issuable_spec.rb29
1 files changed, 24 insertions, 5 deletions
diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb
index 3cc96816cb0..1078c959419 100644
--- a/spec/models/concerns/issuable_spec.rb
+++ b/spec/models/concerns/issuable_spec.rb
@@ -44,21 +44,40 @@ describe Issue, "Issuable" do
it { expect(described_class).to respond_to(:assigned) }
end
- describe "after_save" do
+ describe "before_save" do
describe "#update_cache_counts" do
context "when previous assignee exists" do
- it "user updates cache counts" do
+ before do
+ assignee = create(:user)
+ issue.project.team << [assignee, :developer]
+ issue.update(assignee: assignee)
+ end
+
+ it "updates cache counts for new assignee" do
+ user = create(:user)
+
expect(user).to receive(:update_cache_counts)
issue.update(assignee: user)
end
+
+ it "updates cache counts for previous assignee" do
+ old_assignee = issue.assignee
+ allow(User).to receive(:find_by_id).with(old_assignee.id).and_return(old_assignee)
+
+ expect(old_assignee).to receive(:update_cache_counts)
+
+ issue.update(assignee: nil)
+ end
end
context "when previous assignee does not exist" do
- it "does not raise error" do
- issue.update(assignee_id: "")
+ before{ issue.update(assignee: nil) }
- expect { issue.update(assignee_id: user) }.not_to raise_error
+ it "updates cache count for the new assignee" do
+ expect_any_instance_of(User).to receive(:update_cache_counts)
+
+ issue.update(assignee: user)
end
end
end