test/integration/navigation_test.rb in merit-1.7.1 vs test/integration/navigation_test.rb in merit-1.8.0

- old
+ new

@@ -1,9 +1,14 @@ require 'test_helper' class NavigationTest < ActiveSupport::IntegrationCase + def tear_down + DummyObserver.unstub(:update) + end + test 'user sign up should grant badge to itself' do + DummyObserver.any_instance.expects(:update).times 1 visit '/users/new' fill_in 'Name', with: 'Jack' assert_difference('Merit::ActivityLog.count') do click_button('Create User') end @@ -11,10 +16,12 @@ user = User.where(name: 'Jack').first assert_equal [Merit::Badge.by_name('just-registered').first], user.badges end test 'User#add_badge should add one badge, #rm_badge should delete one' do + DummyObserver.any_instance.expects(:update).times 0 + user = User.create(name: 'test-user') assert_equal [], user.badges badge = Merit::Badge.first user.add_badge badge.id @@ -25,17 +32,19 @@ user.rm_badge badge.id assert_equal [badge], user.reload.badges end test 'Remove inexistent badge should do nothing' do + DummyObserver.any_instance.expects(:update).times 0 user = User.create(name: 'test-user') assert_equal [], user.badges user.rm_badge 1 assert_equal [], user.badges end test 'users#index should grant badge multiple times' do + DummyObserver.any_instance.expects(:update).times 14 user = User.create(name: 'test-user') # Multiple rule assert_difference 'badges_by_name(user, "gossip").count', 3 do 3.times { visit '/users' } @@ -56,10 +65,11 @@ visit '/users' end end test 'user workflow should grant some badges at some times' do + DummyObserver.any_instance.expects(:update).at_least_once # Commented 9 times, no badges yet user = User.create(name: 'test-user') # Create needed friend user object friend = User.create(name: 'friend') @@ -122,18 +132,22 @@ visit "/users/#{user.id}/edit" fill_in 'Name', with: 'abc' assert_difference('Merit::ActivityLog.count', 2) do click_button('Update User') end - # Last one is point granting, previous one is badge removing - assert_equal 'removed', Merit::ActivityLog.all[-2].description + # Check created Merit::ActivityLogs + assert_equal 'granted commenter badge', Merit::ActivityLog.all[0].description + assert_equal 'granted 20 points', Merit::ActivityLog.all[-1].description + assert_equal 'removed autobiographer badge', Merit::ActivityLog.all[-2].description + user = User.where(name: 'abc').first assert !user.badges.include?(autobiographer_badge), "User badges: #{user.badges.collect(&:name).inspect} should remove autobiographer badge." end test 'user workflow should add up points at some times' do + DummyObserver.any_instance.expects(:update).at_least_once User.delete_all user = User.create(name: 'test-user') assert_equal 0, user.points, 'User should start with 0 points' visit "/users/#{user.id}/edit" @@ -182,10 +196,11 @@ user = User.where(name: 'a').first assert_equal 50, user.points, 'Commenting should grant the integer in comment points if comment is an integer' end test 'user workflow should grant levels at some times' do + DummyObserver.any_instance.expects(:update).at_least_once user = User.create(name: 'test-user') assert user.badges.empty? # Edit user's name by 2 chars name visit "/users/#{user.id}/edit" @@ -218,10 +233,11 @@ user.reload assert_equal 5, user.level, "User level should be 5." end test 'assigning points to a group of records' do + DummyObserver.any_instance.expects(:update).times 4 commenter = User.create(name: 'commenter') comment_1 = commenter.comments.create(name: 'comment_1', comment: 'a') comment_2 = commenter.comments.create(name: 'comment_2', comment: 'b') visit comments_path @@ -235,9 +251,10 @@ comment_1.reload.points.must_be :==, 2 comment_2.reload.points.must_be :==, 2 end test 'api/comments#show should grant 1 point to user' do + DummyObserver.any_instance.expects(:update).times 1 user = User.create(name: 'test-user') assert_equal 0, user.points comment = user.comments.create!(name: 'test-comment', comment: 'comment body') visit "/api/comments/#{comment.id}"