Данные-заглушки WebMock из Aws CognitoIdentityProvider

У меня есть следующий модуль в контроллере Rails:

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

На данный момент ставит cognito_user возвращает:

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

Как я могу изучить ответ в Rspec, чтобы имя пользователя и user_attributes не были нулевыми?


person Gundam Meister    schedule 09.06.2017    source источник
comment
Попробуйте allow(cognitoidentityprovider).to receive(:get_user).with(your_params).and_return(your_object). Ознакомьтесь с документами.   -  person yzalavin    schedule 09.06.2017
comment
На самом деле, вы должны показать свой rspec файл с тестами для лучшего ответа.   -  person yzalavin    schedule 09.06.2017


Ответы (1)


после игры с предложением yzalavin... у меня работает следующее...

allow_any_instance_of( AwsAuth )
      .to receive(:get_cognito_user)
      .and_return( JSON[ {email: "[email protected]"}.to_json ] )
person Gundam Meister    schedule 10.06.2017