# frozen_string_literal: true module OmniauthMacros # The mock_auth configuration allows you to set per-provider (or default) # authentication hashes to return during integration testing. ENV['OSEM_GOOGLE_KEY'] = 'test key google' ENV['OSEM_GOOGLE_SECRET'] = 'test secret google' ENV['OSEM_FACEBOOK_KEY'] = 'test key facebook' ENV['OSEM_FACEBOOK_SECRET'] = 'test secret facebook' ENV['OSEM_SUSE_KEY'] = 'test key suse' ENV['OSEM_SUSE_SECRET'] = 'test secret suse' ENV['OSEM_GITHUB_KEY'] = 'test key github' ENV['OSEM_GITHUB_SECRET'] = 'test secret github' def mock_auth_new_user OmniAuth.config.mock_auth[:google] = OmniAuth::AuthHash.new( provider: 'google', uid: 'google-test-uid-1', info: { name: 'new user name', email: 'test-1@example.com' }, credentials: { token: 'mock_token', secret: 'mock_secret' } ) end def mock_auth_new_user_fb OmniAuth.config.mock_auth[:facebook] = OmniAuth::AuthHash.new( provider: 'facebook', uid: 'facebook-test-uid-1', info: { name: 'new user fb name', email: 'test-1@example.com' }, credentials: { token: 'mock_token', secret: 'mock_secret' } ) end def mock_auth_existing_user_participant # The mock_auth configuration allows you to set per-provider (or default) # authentication hashes to return during integration testing. OmniAuth.config.mock_auth[:google] = OmniAuth::AuthHash.new( provider: 'google', uid: 'google-test-uid-participant-1', info: { name: 'existing user participant name', email: 'test-participant-1@example.com' }, credentials: { token: 'mock_token', secret: 'mock_secret' } ) end def mock_auth_existing_user_admin # The mock_auth configuration allows you to set per-provider (or default) # authentication hashes to return during integration testing. OmniAuth.config.mock_auth[:google] = OmniAuth::AuthHash.new( provider: 'google', uid: 'google-test-uid-admin-1', info: { name: 'existing user admin name', email: 'test-admin-1@example.com' }, credentials: { token: 'mock_token', secret: 'mock_secret' } ) end # We use these mock accounts to ensure that the ones which are available in # development are valid, to test omniauth actions and verify that a mock # account is available for every supported omniauth provider. # These must be identical to the ones in /config/environments/development.rb # Remember to keep them in sync with development.rb def mock_auth_accounts OmniAuth.config.mock_auth[:facebook] = OmniAuth::AuthHash.new( provider: 'facebook', uid: 'facebook-test-uid-1', info: { name: 'facebook user', email: 'user-facebook@example.com', username: 'user_facebook' }, credentials: { token: 'fb_mock_token', secret: 'fb_mock_secret' } ) OmniAuth.config.mock_auth[:google] = OmniAuth::AuthHash.new( provider: 'google', uid: 'google-test-uid-1', info: { name: 'google user', email: 'user-google@example.com', username: 'user_google' }, credentials: { token: 'google_mock_token', secret: 'google_mock_secret' } ) OmniAuth.config.mock_auth[:suse] = OmniAuth::AuthHash.new( provider: 'suse', uid: 'suse-test-uid-1', info: { name: 'suse user', email: 'user-suse@example.com', username: 'user_suse' }, credentials: { token: 'suse_mock_token', secret: 'suse_mock_secret' } ) OmniAuth.config.mock_auth[:github] = OmniAuth::AuthHash.new( provider: 'github', uid: 'github-test-uid-1', info: { name: 'github user', email: 'user-github@example.com', username: 'user_github' }, credentials: { token: 'github_mock_token', secret: 'github_mock_secret' } ) end end