* Display all authentication providers in mailer footer * Refactor into Authentication::Providers.enabled_for_user
30 lines
1.1 KiB
Ruby
30 lines
1.1 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe AuthenticationHelper, type: :helper do
|
|
let(:user) { create(:user, :with_identity) }
|
|
|
|
before do
|
|
omniauth_mock_providers_payload
|
|
end
|
|
|
|
describe "#authentication_enabled_providers_for_user" do
|
|
it "returns an enabled provider" do
|
|
provider = Authentication::Providers.available.first
|
|
allow(Authentication::Providers).to receive(:enabled).and_return([provider])
|
|
allow(user).to receive(:identities).and_return(user.identities.where(provider: provider))
|
|
|
|
expected_result = Authentication::Providers.get!(provider)
|
|
expect(helper.authentication_enabled_providers_for_user(user)).to match_array([expected_result])
|
|
end
|
|
|
|
it "does not return a disabled provider" do
|
|
disabled_provider = %i[github]
|
|
providers = Authentication::Providers.available - disabled_provider
|
|
allow(Authentication::Providers).to receive(:enabled).and_return(providers)
|
|
user = create(:user, :with_identity)
|
|
|
|
provider_names = helper.authentication_enabled_providers_for_user(user).map(&:provider_name)
|
|
expect(provider_names).not_to include(disabled_provider)
|
|
end
|
|
end
|
|
end
|