diff options
Diffstat (limited to 'spec/models/project_spec.rb')
| -rw-r--r-- | spec/models/project_spec.rb | 52 |
1 files changed, 46 insertions, 6 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index c2ebfbd9229..72673a1f812 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -241,21 +241,61 @@ describe Project do it { project.open_branches.map(&:name).should_not include('master') } end - describe "#count_star" do - it "counts stars" do + describe "#star_count" do + it "counts stars from multiple users" do user1 = create :user user2 = create :user project = create :project, :public expect(project.star_count).to eq(0) + user1.toggle_star(project) - expect(project.star_count).to eq(1) + expect(project.reload.star_count).to eq(1) + user2.toggle_star(project) - expect(project.star_count).to eq(2) + project.reload + expect(project.reload.star_count).to eq(2) + user1.toggle_star(project) - expect(project.star_count).to eq(1) + project.reload + expect(project.reload.star_count).to eq(1) + user2.toggle_star(project) - expect(project.star_count).to eq(0) + project.reload + expect(project.reload.star_count).to eq(0) + end + + it "counts stars on the right project" do + user = create :user + project1 = create :project, :public + project2 = create :project, :public + + expect(project1.star_count).to eq(0) + expect(project2.star_count).to eq(0) + + user.toggle_star(project1) + project1.reload + project2.reload + expect(project1.star_count).to eq(1) + expect(project2.star_count).to eq(0) + + user.toggle_star(project1) + project1.reload + project2.reload + expect(project1.star_count).to eq(0) + expect(project2.star_count).to eq(0) + + user.toggle_star(project2) + project1.reload + project2.reload + expect(project1.star_count).to eq(0) + expect(project2.star_count).to eq(1) + + user.toggle_star(project2) + project1.reload + project2.reload + expect(project1.star_count).to eq(0) + expect(project2.star_count).to eq(0) end end end |
