2017-06-09 3 views
3

Je le module suivant dans un souci de contrôleur Rails:données stub WebMock de Aws CognitoIdentityProvider

module AwsAuth 
    extend ActiveSupport::Concern 

    require 'aws-sdk' 

    def get_cognito_user(token) 
    cognitoidentityprovider = Aws::CognitoIdentityProvider::Client.new(region: ENV['AWS_REGION']) 

    begin 
     cognito_user = cognitoidentityprovider.get_user({ access_token: token }) 

     puts cognito_user 

     return {"email" => cognito_user.username} 

    rescue StandardError => msg 
     puts "ERROR!" 
     puts msg 
     return {"error" => msg} 
    end 
    end 
end 

Actuellement, met revient cognito_user:

#<Aws::CognitoIdentityProvider::Types::GetUserResponse:0x7fe51b0013a8 
    mfa_options = nil, 
    user_attributes = nil, 
    username = nil 
> 

Comment puis-je stud la réponse à Rspec si ce nom d'utilisateur et user_attributes ne sont pas nuls?

+3

Essayez 'permettent (cognitoidentityprovider) .pour recevoir (: get_user) .Avec (your_params) .and_return (your_object) '. Découvrez [docs] (https://relishapp.com/rspec/rspec-mocks/v/2-14/docs/method-stubs) – yzalavin

+1

En fait, vous devriez montrer votre fichier 'rspec' avec les tests pour une meilleure réponse . – yzalavin

Répondre

0

après avoir joué avec la suggestion de yzalavin ... les œuvres suivantes pour moi ...

allow_any_instance_of(AwsAuth) 
     .to receive(:get_cognito_user) 
     .and_return(JSON[ {email: "[email protected]"}.to_json ])