0
Я закрыл свой клиент API. И получили его, чтобы вернуть ожидаемый хеш. Но я не могу получить доступ к собственно хэшу.Что не так с этим Rspec-заглушкой?
например
puts page # returns {:access_token=>"blah", :name=>"parrotcafe", :fb_id=>"2131231", :perms=>"ADMINISTER"}
но
puts page['perms'] # returns nil instead of 'ADMINISTER'
Вот мой Rspec:
describe 'all' do
it 'if doesnt exist, it should create authentication' do
request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:facebook]
client = double("koala client")
Koala::Facebook::API.stub(:new).and_return(client)
allow(client).to receive_messages(get_connections: [{'access_token': 'blah', 'name': 'parrot', 'fb_id': '2131231', 'perms': 'ADMINISTER'}])
expect {
post :all, provider: :facebook
}.to change{ Authentication.count }.by(1)
end
end
Вот фактический код, где он не .:
@user_graph = Koala::Facebook::API.new(authentication.token)
pages = @user_graph.get_connections('me', 'accounts')
pages.each do |page|
Page.create(user_id: self.id, access_token: page['access_token'], name: page['name'], fb_id: page['id']) if page['perms'].include? "ADMINISTER"
end
Вы должны использовать 'страницу [: завивки]' не 'страницу [«завивки»]'. –
@ Зелёный Есть ли лучший способ сделать это? Изменение моего кода, так что он проходит спецификацию, кажется плохой идеей ... тем более, что работает настоящий код. – echan00
@ Зелёный 'страница [: perms]', похоже, не является решением. все еще пуст – echan00