Refactor keybinding tests
There was an order-dependent test failure that plagued a couple of my
recent pull requests:
Failure:
Default_keybindings#test_keybinding_unset
[/home/runner/work/gollum/gollum/test/test_app.rb:1098]
Minitest::Assertion: Expected: true
Actual: false
This commit ensures that `default_keybinding` is set to `nil` before
each test, and that the first line of each test changes the
configuration to the setting under test explicitly.
I also refactored the teardown to `nil` out all instance values so
they'll all certainly be reset when the next set of tests is run.
This commit is contained in:
+24
-15
@@ -1082,59 +1082,68 @@ context "Default keybindings" do
|
|||||||
include Rack::Test::Methods
|
include Rack::Test::Methods
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
@path = cloned_testpath("examples/empty.git")
|
@path = cloned_testpath "examples/empty.git"
|
||||||
@wiki = Gollum::Wiki.new(@path)
|
@wiki = Gollum::Wiki.new @path
|
||||||
@url = '/gollum/create/test'
|
@url = '/gollum/create/test'
|
||||||
Precious::App.set(:gollum_path, @path)
|
|
||||||
|
Precious::App.set :gollum_path, @path
|
||||||
|
Precious::App.set :wiki_options, {default_keybinding: nil}
|
||||||
end
|
end
|
||||||
|
|
||||||
teardown do
|
teardown do
|
||||||
FileUtils.rm_rf(@path)
|
FileUtils.rm_rf @path
|
||||||
Precious::App.set(:wiki_options, {default_keybinding: nil})
|
|
||||||
|
@path = nil
|
||||||
|
@wiki = nil
|
||||||
|
@url = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'keybinding unset' do
|
test 'keybinding unset' do
|
||||||
get @url
|
get @url
|
||||||
|
|
||||||
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'keybinding `dne`' do
|
test 'nonexistent keybinding' do
|
||||||
# dne := does not exist
|
Precious::App.set :wiki_options, {:default_keybinding => 'does-not-exist'}
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'dne'})
|
|
||||||
get @url
|
get @url
|
||||||
|
|
||||||
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'none'})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'keybinding `default`' do
|
test 'keybinding `default`' do
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'default'})
|
Precious::App.set :wiki_options, {:default_keybinding => 'default'}
|
||||||
|
|
||||||
get @url
|
get @url
|
||||||
|
|
||||||
assert_equal last_response.body.include?('selected="selected" value="default"'), true
|
assert_equal last_response.body.include?('selected="selected" value="default"'), true
|
||||||
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'none'})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'keybinding `vim`' do
|
test 'keybinding `vim`' do
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'vim'})
|
Precious::App.set :wiki_options, {:default_keybinding => 'vim'}
|
||||||
|
|
||||||
get @url
|
get @url
|
||||||
|
|
||||||
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="vim"'), true
|
assert_equal last_response.body.include?('selected="selected" value="vim"'), true
|
||||||
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
assert_equal last_response.body.include?('selected="selected" value="emacs"'), false
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'none'})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'keybinding `emacs`' do
|
test 'keybinding `emacs`' do
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'emacs'})
|
Precious::App.set :wiki_options, {:default_keybinding => 'emacs'}
|
||||||
|
|
||||||
get @url
|
get @url
|
||||||
|
|
||||||
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
assert_equal last_response.body.include?('selected="selected" value="default"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
assert_equal last_response.body.include?('selected="selected" value="vim"'), false
|
||||||
assert_equal last_response.body.include?('selected="selected" value="emacs"'), true
|
assert_equal last_response.body.include?('selected="selected" value="emacs"'), true
|
||||||
Precious::App.set(:wiki_options, {:default_keybinding => 'none'})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def app
|
def app
|
||||||
|
|||||||
Reference in New Issue
Block a user