From 049db3eb69cdd989a660078b478b64d4800b2635 Mon Sep 17 00:00:00 2001 From: benjamin wil Date: Sun, 4 Sep 2022 15:31:01 -0600 Subject: [PATCH] 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. --- test/test_app.rb | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/test/test_app.rb b/test/test_app.rb index 36789e7c..b83325c1 100644 --- a/test/test_app.rb +++ b/test/test_app.rb @@ -1082,59 +1082,68 @@ context "Default keybindings" do include Rack::Test::Methods setup do - @path = cloned_testpath("examples/empty.git") - @wiki = Gollum::Wiki.new(@path) + @path = cloned_testpath "examples/empty.git" + @wiki = Gollum::Wiki.new @path @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 teardown do - FileUtils.rm_rf(@path) - Precious::App.set(:wiki_options, {default_keybinding: nil}) + FileUtils.rm_rf @path + + @path = nil + @wiki = nil + @url = nil end test 'keybinding unset' do get @url + 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="emacs"'), false end - test 'keybinding `dne`' do - # dne := does not exist - Precious::App.set(:wiki_options, {:default_keybinding => 'dne'}) + test 'nonexistent keybinding' do + Precious::App.set :wiki_options, {:default_keybinding => 'does-not-exist'} + get @url + 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="emacs"'), false - Precious::App.set(:wiki_options, {:default_keybinding => 'none'}) end test 'keybinding `default`' do - Precious::App.set(:wiki_options, {:default_keybinding => 'default'}) + Precious::App.set :wiki_options, {:default_keybinding => 'default'} + get @url + 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="emacs"'), false - Precious::App.set(:wiki_options, {:default_keybinding => 'none'}) end test 'keybinding `vim`' do - Precious::App.set(:wiki_options, {:default_keybinding => 'vim'}) + Precious::App.set :wiki_options, {:default_keybinding => 'vim'} + get @url + 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="emacs"'), false - Precious::App.set(:wiki_options, {:default_keybinding => 'none'}) end test 'keybinding `emacs`' do - Precious::App.set(:wiki_options, {:default_keybinding => 'emacs'}) + Precious::App.set :wiki_options, {:default_keybinding => 'emacs'} + get @url + 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="emacs"'), true - Precious::App.set(:wiki_options, {:default_keybinding => 'none'}) end def app