Skip to content

Commit

Permalink
Upgrade mocha to latest, fix method sequence usage and deprecations
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosantoniodasilva committed Oct 11, 2023
1 parent 7cb25ad commit 5fdbd06
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 55 deletions.
58 changes: 30 additions & 28 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,52 +8,54 @@ PATH
GEM
remote: https://rubygems.org/
specs:
actionpack (7.0.4)
actionview (= 7.0.4)
activesupport (= 7.0.4)
rack (~> 2.0, >= 2.2.0)
actionpack (7.0.8)
actionview (= 7.0.8)
activesupport (= 7.0.8)
rack (~> 2.0, >= 2.2.4)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actionview (7.0.4)
activesupport (= 7.0.4)
actionview (7.0.8)
activesupport (= 7.0.8)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activesupport (7.0.4)
activesupport (7.0.8)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
builder (3.2.4)
concurrent-ruby (1.1.10)
concurrent-ruby (1.2.2)
crass (1.0.6)
erubi (1.12.0)
i18n (1.12.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
loofah (2.19.1)
loofah (2.21.4)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
metaclass (0.0.4)
mini_portile2 (2.8.1)
minitest (5.17.0)
mocha (1.0.0)
metaclass (~> 0.0.1)
nokogiri (1.14.0)
mini_portile2 (~> 2.8.0)
nokogiri (>= 1.12.0)
mini_portile2 (2.8.4)
minitest (5.20.0)
mocha (2.1.0)
ruby2_keywords (>= 0.0.5)
nokogiri (1.15.4)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
racc (1.6.2)
rack (2.2.5)
rack-test (2.0.2)
racc (1.7.1)
rack (2.2.8)
rack-test (2.1.0)
rack (>= 1.3)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.4.4)
loofah (~> 2.19, >= 2.19.1)
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (~> 1.14)
rake (13.0.6)
tzinfo (2.0.5)
ruby2_keywords (0.0.5)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)

PLATFORMS
Expand All @@ -63,8 +65,8 @@ DEPENDENCIES
actionpack (~> 7.0.0)
activesupport (~> 7.0.0)
has_scope!
mocha (~> 1.0.0)
mocha
rake

BUNDLED WITH
2.4.3
2.4.20
2 changes: 1 addition & 1 deletion has_scope.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'activesupport', '>= 5.2'

s.add_development_dependency 'rake'
s.add_development_dependency 'mocha', '~> 1.0.0'
s.add_development_dependency 'mocha'
end
60 changes: 35 additions & 25 deletions test/has_scope_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,9 @@ class HasScopeTest < ActionController::TestCase
tests TreesController

def test_boolean_scope_is_called_when_boolean_param_is_true
Tree.expects(:only_tall).with().returns(Tree).in_sequence
Tree.expects(:all).returns([mock_tree]).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:only_tall).with().returns(Tree).in_sequence(tree_sequence)
Tree.expects(:all).returns([mock_tree]).in_sequence(tree_sequence)

get :index, params: { only_tall: 'true' }

Expand All @@ -107,8 +108,9 @@ def test_boolean_scope_is_not_called_when_boolean_param_is_false
end

def test_boolean_scope_with_allow_blank_is_called_when_boolean_param_is_true
Tree.expects(:conifer).with(true).returns(Tree).in_sequence
Tree.expects(:all).returns([mock_tree]).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:conifer).with(true).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:all).returns([mock_tree]).in_sequence(tree_sequence)

get :index, params: { conifer: 'true' }

Expand All @@ -117,8 +119,9 @@ def test_boolean_scope_with_allow_blank_is_called_when_boolean_param_is_true
end

def test_boolean_scope_with_allow_blank_is_called_when_boolean_param_is_false
Tree.expects(:conifer).with(false).returns(Tree).in_sequence
Tree.expects(:all).returns([mock_tree]).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:conifer).with(false).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:all).returns([mock_tree]).in_sequence(tree_sequence)

get :index, params: { conifer: 'not_true' }

Expand Down Expand Up @@ -201,8 +204,9 @@ def test_scope_is_called_except_on_index
end

def test_scope_is_called_with_arguments
Tree.expects(:color).with('blue').returns(Tree).in_sequence
Tree.expects(:all).returns([mock_tree]).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:color).with('blue').returns(Tree).in_sequence(tree_sequence)
Tree.expects(:all).returns([mock_tree]).in_sequence(tree_sequence)

get :index, params: { color: 'blue' }

Expand All @@ -211,8 +215,9 @@ def test_scope_is_called_with_arguments
end

def test_scope_is_not_called_if_blank
tree_sequence = sequence('tree')
Tree.expects(:color).never
Tree.expects(:all).returns([mock_tree]).in_sequence
Tree.expects(:all).returns([mock_tree]).in_sequence(tree_sequence)

get :index, params: { color: '' }

Expand All @@ -221,8 +226,9 @@ def test_scope_is_not_called_if_blank
end

def test_scope_is_called_when_blank_if_allow_blank_is_given
tree_sequence = sequence('tree')
Tree.expects(:root_type).with('').returns(Tree)
Tree.expects(:all).returns([mock_tree]).in_sequence
Tree.expects(:all).returns([mock_tree]).in_sequence(tree_sequence)

get :index, params: { root: '' }

Expand Down Expand Up @@ -349,11 +355,12 @@ def test_scope_of_invalid_type_silently_fails
end

def test_scope_is_called_with_default_value
Tree.expects(:shadown_range).with(10).returns(Tree).in_sequence
Tree.expects(:paginate_default).with('page' => 1, 'per_page' => 10).returns(Tree).in_sequence
Tree.expects(:args_paginate_default).with(1, 10).returns(Tree).in_sequence
Tree.expects(:metadata_default).with('default').returns(Tree).in_sequence
Tree.expects(:find).with('42').returns(mock_tree).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:shadown_range).with(10).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:paginate_default).with({ 'page' => 1, 'per_page' => 10 }).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:args_paginate_default).with(1, 10).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:metadata_default).with('default').returns(Tree).in_sequence(tree_sequence)
Tree.expects(:find).with('42').returns(mock_tree).in_sequence(tree_sequence)

get :edit, params: { id: '42' }

Expand All @@ -367,12 +374,13 @@ def test_scope_is_called_with_default_value
end

def test_default_scope_value_can_be_overwritten
Tree.expects(:shadown_range).with('20').returns(Tree).in_sequence
Tree.expects(:paginate_default).with('page' => '2', 'per_page' => '20').returns(Tree).in_sequence
Tree.expects(:args_paginate_default).with('3', '15').returns(Tree).in_sequence
Tree.expects(:metadata_blank).with(nil).returns(Tree).in_sequence
Tree.expects(:metadata_default).with('other').returns(Tree).in_sequence
Tree.expects(:find).with('42').returns(mock_tree).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:shadown_range).with('20').returns(Tree).in_sequence(tree_sequence)
Tree.expects(:paginate_default).with({ 'page' => '2', 'per_page' => '20' }).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:args_paginate_default).with('3', '15').returns(Tree).in_sequence(tree_sequence)
Tree.expects(:metadata_blank).with(nil).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:metadata_default).with('other').returns(Tree).in_sequence(tree_sequence)
Tree.expects(:find).with('42').returns(mock_tree).in_sequence(tree_sequence)

get :edit, params: {
id: '42',
Expand All @@ -392,8 +400,9 @@ def test_default_scope_value_can_be_overwritten
end

def test_scope_with_different_key
Tree.expects(:root_type).with('outside').returns(Tree).in_sequence
Tree.expects(:find).with('42').returns(mock_tree).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:root_type).with('outside').returns(Tree).in_sequence(tree_sequence)
Tree.expects(:find).with('42').returns(mock_tree).in_sequence(tree_sequence)

get :show, params: { id: '42', root: 'outside' }

Expand All @@ -414,8 +423,9 @@ def test_scope_with_default_value_as_a_proc_without_argument

def test_scope_with_default_value_as_proc_with_argument
session[:height] = 100
Tree.expects(:calculate_height).with(100).returns(Tree).in_sequence
Tree.expects(:new).returns(mock_tree).in_sequence
tree_sequence = sequence('tree')
Tree.expects(:calculate_height).with(100).returns(Tree).in_sequence(tree_sequence)
Tree.expects(:new).returns(mock_tree).in_sequence(tree_sequence)

get :new

Expand Down
2 changes: 1 addition & 1 deletion test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

require 'minitest/autorun'
require 'mocha'
require 'mocha/mini_test'
require 'mocha/minitest'

# Configure Rails
ENV['RAILS_ENV'] = 'test'
Expand Down

0 comments on commit 5fdbd06

Please sign in to comment.