Sha256: 0efaa2c2b32a483be2d691069236047f508c9d8d7ea07872231a01905b4768a1

Contents?: true

Size: 813 Bytes

Versions: 7

Compression:

Stored size: 813 Bytes

Contents

# frozen_string_literal: true

describe PUNK::ListSessionsAction do
  context 'with no user provided' do
    it 'returns a validation error' do
      view = described_class.run.result.render(:json)
      expect(view).to match('user is not present')
    end
  end

  context 'with a user provided' do
    let(:user) { create(:user) }
    let(:identity) { create(:identity, user: user) }

    before do
      create_list(:session, 3, state: 'active')
      create_list(:session, 3, state: 'active', identity: identity)
    end

    it 'returns active sessions that the user belongs to' do
      expect(PUNK::Session.count).to eq(6)
      view = JSON.parse(described_class.run(user: user).result.render(:json))
      expect(view.map { |h| h['id'] }.sort).to eq(user.active_sessions.map(&:id).sort)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
punk-0.3.6 spec/actions/sessions/punk/list_sessions_action_spec.rb
punk-0.3.5 spec/actions/sessions/punk/list_sessions_action_spec.rb
punk-0.3.4 spec/actions/sessions/punk/list_sessions_action_spec.rb
punk-0.3.3 spec/actions/sessions/punk/list_sessions_action_spec.rb
punk-0.3.2 spec/actions/sessions/punk/list_sessions_action_spec.rb
punk-0.3.1 spec/actions/sessions/punk/list_sessions_action_spec.rb
punk-0.2.0 spec/actions/sessions/punk/list_sessions_action_spec.rb