require "spec_helper" describe AuthHelper do describe "button_based_providers" do it 'returns all enabled providers from devise' do allow(helper).to receive(:auth_providers) { [:twitter, :github] } expect(helper.button_based_providers).to include(*[:twitter, :github]) end it 'does not return ldap provider' do allow(helper).to receive(:auth_providers) { [:twitter, :ldapmain] } expect(helper.button_based_providers).to include(:twitter) end it 'returns empty array' do allow(helper).to receive(:auth_providers) { [] } expect(helper.button_based_providers).to eq([]) end end describe 'enabled_button_based_providers' do before do allow(helper).to receive(:auth_providers) { [:twitter, :github] } end context 'all providers are enabled to sign in' do it 'returns all the enabled providers from settings' do expect(helper.enabled_button_based_providers).to include('twitter', 'github') end end context 'GitHub OAuth sign in is disabled from application setting' do it "doesn't return github as provider" do stub_application_setting( disabled_oauth_sign_in_sources: ['github'] ) expect(helper.enabled_button_based_providers).to include('twitter') expect(helper.enabled_button_based_providers).not_to include('github') end end end describe 'button_based_providers_enabled?' do before do allow(helper).to receive(:auth_providers) { [:twitter, :github] } end context 'button based providers enabled' do it 'returns true' do expect(helper.button_based_providers_enabled?).to be true end end context 'all the button based providers are disabled via application_setting' do it 'returns false' do stub_application_setting( disabled_oauth_sign_in_sources: ['github', 'twitter'] ) expect(helper.button_based_providers_enabled?).to be false end end end end