Sha256: d1f41d5bff8eeefac19e09191fdb07d382bf5ecb080d33496217d993bd235986

Contents?: true

Size: 1.74 KB

Versions: 26

Compression:

Stored size: 1.74 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

RSpec.describe 'Logout Requests' do
  include_context 'with graphql query request'

  let(:user) { create(:user, :confirmed) }
  let(:query) do
    <<-GRAPHQL
      mutation {
        userLogout {
          authenticatable { email }
        }
      }
    GRAPHQL
  end

  before { post_request }

  context 'when user is logged in' do
    let(:headers) { user.create_new_auth_token }

    it 'logs out the user' do
      expect(response).not_to include_auth_headers
      expect(user.reload.tokens.keys).to be_empty
      expect(json_response[:data][:userLogout]).to match(
        authenticatable: { email: user.email }
      )
      expect(json_response[:errors]).to be_nil
    end
  end

  context 'when user is not logged in' do
    it 'returns an error' do
      expect(response).not_to include_auth_headers
      expect(user.reload.tokens.keys).to be_empty
      expect(json_response[:data][:userLogout]).to be_nil
      expect(json_response[:errors]).to contain_exactly(
        hash_including(message: 'User was not found or was not logged in.', extensions: { code: 'USER_ERROR' })
      )
    end
  end

  context 'when using the admin model' do
    let(:query) do
      <<-GRAPHQL
        mutation {
          adminLogout {
            authenticatable { email }
          }
        }
      GRAPHQL
    end
    let(:admin)   { create(:admin, :confirmed) }
    let(:headers) { admin.create_new_auth_token }

    it 'logs out the admin' do
      expect(response).not_to include_auth_headers
      expect(admin.reload.tokens.keys).to be_empty
      expect(json_response[:data][:adminLogout]).to match(
        authenticatable: { email: admin.email }
      )
      expect(json_response[:errors]).to be_nil
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
graphql_devise-2.0.0 spec/requests/mutations/logout_spec.rb
graphql_devise-1.4.0 spec/requests/mutations/logout_spec.rb
graphql_devise-1.3.0 spec/requests/mutations/logout_spec.rb
graphql_devise-1.2.0 spec/requests/mutations/logout_spec.rb
graphql_devise-1.1.1 spec/requests/mutations/logout_spec.rb
graphql_devise-1.1.0 spec/requests/mutations/logout_spec.rb
graphql_devise-1.0.1 spec/requests/mutations/logout_spec.rb
graphql_devise-1.0.0 spec/requests/mutations/logout_spec.rb
graphql_devise-0.18.2 spec/requests/mutations/logout_spec.rb
graphql_devise-0.18.1 spec/requests/mutations/logout_spec.rb
graphql_devise-0.18.0 spec/requests/mutations/logout_spec.rb
graphql_devise-0.17.1 spec/requests/mutations/logout_spec.rb
graphql_devise-0.17.0 spec/requests/mutations/logout_spec.rb
graphql_devise-0.16.0 spec/requests/mutations/logout_spec.rb
graphql_devise-0.15.0 spec/requests/mutations/logout_spec.rb
graphql_devise-0.14.3 spec/requests/mutations/logout_spec.rb
graphql_devise-0.14.2 spec/requests/mutations/logout_spec.rb
graphql_devise-0.14.1 spec/requests/mutations/logout_spec.rb
graphql_devise-0.14.0 spec/requests/mutations/logout_spec.rb
graphql_devise-0.13.6 spec/requests/mutations/logout_spec.rb