Sha256: cb79faa5d76384ad4d4247474cb15f804a4c884bb7f3c968e756e172013adbf1

Contents?: true

Size: 1.25 KB

Versions: 11

Compression:

Stored size: 1.25 KB

Contents

require 'spec_helper'
require 'sorcery/providers/base'
require 'sorcery/providers/vk'
require 'webmock/rspec'

describe Sorcery::Providers::Vk do
  include WebMock::API

  let(:provider) { Sorcery::Controller::Config.vk }

  before(:all) do
    sorcery_reload!([:external])
    sorcery_controller_property_set(:external_providers, [:vk])
    sorcery_controller_external_property_set(:vk, :key, 'KEY')
    sorcery_controller_external_property_set(:vk, :secret, 'SECRET')
  end

  def stub_vk_authorize
    stub_request(:post, %r{https\:\/\/oauth\.vk\.com\/access_token}).to_return(
      status: 200,
      body: '{"access_token":"TOKEN","expires_in":86329,"user_id":1}',
      headers: { 'content-type' => 'application/json' }
    )
  end

  context 'getting user info hash' do
    it 'should provide VK API version' do
      stub_vk_authorize
      sorcery_controller_external_property_set(:vk, :api_version, '5.71')

      get_user = stub_request(
        :get,
        'https://api.vk.com/method/getProfiles?access_token=TOKEN&fields=&scope=email&uids=1&v=5.71'
      ).to_return(body: '{"response":[{"id":1}]}')

      token = provider.process_callback({ code: 'CODE' }, nil)
      provider.get_user_hash(token)

      expect(get_user).to have_been_requested
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
sorcery-0.17.0 spec/providers/vk_spec.rb
sorcery-0.16.5 spec/providers/vk_spec.rb
sorcery-0.16.4 spec/providers/vk_spec.rb
sorcery-0.16.3 spec/providers/vk_spec.rb
sorcery-0.16.2 spec/providers/vk_spec.rb
sorcery-0.16.1 spec/providers/vk_spec.rb
sorcery-0.15.1 spec/providers/vk_spec.rb
sorcery-0.16.0 spec/providers/vk_spec.rb
sorcery-0.15.0 spec/providers/vk_spec.rb
sorcery-0.14.0 spec/providers/vk_spec.rb
sorcery-0.13.0 spec/providers/vk_spec.rb