diff options
author | Robert Speicher <rspeicher@gmail.com> | 2016-02-03 01:23:34 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-02-25 01:38:13 +0300 |
commit | b95ef77e233eab3b3d37a4a7dce545d9da36f8a0 (patch) | |
tree | cd5717ac2010967f33ed35691093a3b2c040e3c9 /spec/views/devise | |
parent | 4a9affa7330f2099f6385d3d74150f93cfd008f1 (diff) |
Move "I should see Crowd login form" feature to a view spec
We were doing all kinds of code gymnastics to "enable" Crowd in the
feature spec and this would sometimes cause a transient failure.
Really what it's testing is if the Crowd login form shows when Crowd's
enabled, so this is much better suited to a view spec.
Diffstat (limited to 'spec/views/devise')
-rw-r--r-- | spec/views/devise/shared/_signin_box.html.haml_spec.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/views/devise/shared/_signin_box.html.haml_spec.rb b/spec/views/devise/shared/_signin_box.html.haml_spec.rb new file mode 100644 index 00000000000..05a76ee4bdb --- /dev/null +++ b/spec/views/devise/shared/_signin_box.html.haml_spec.rb @@ -0,0 +1,37 @@ +require 'rails_helper' + +describe 'devise/shared/_signin_box' do + describe 'Crowd form' do + before do + stub_devise + assign(:ldap_servers, []) + end + + it 'is shown when Crowd is enabled' do + enable_crowd + + render + + expect(rendered).to have_selector('#tab-crowd form') + end + + it 'is not shown when Crowd is disabled' do + render + + expect(rendered).not_to have_selector('#tab-crowd') + end + end + + def stub_devise + allow(view).to receive(:devise_mapping).and_return(Devise.mappings[:user]) + allow(view).to receive(:resource).and_return(spy) + allow(view).to receive(:resource_name).and_return(:user) + end + + def enable_crowd + allow(view).to receive(:form_based_providers).and_return([:crowd]) + allow(view).to receive(:crowd_enabled?).and_return(true) + allow(view).to receive(:user_omniauth_authorize_path).with('crowd'). + and_return('/crowd') + end +end |