Sha256: f5ad26ff5a4608ee0e0726b38fd4ef4547f6ed07e72d6b58fe479704f99fedfb

Contents?: true

Size: 1.99 KB

Versions: 19

Compression:

Stored size: 1.99 KB

Contents

# frozen_string_literal: true

describe WorkOS::Passwordless do
  it_behaves_like 'client'

  describe '.create_session' do
    context 'with valid options payload' do
      let(:valid_options) do
        {
          email: 'demo@workos-okta.com',
          type: 'MagicLink',
          redirect_uri: 'foo.com/auth/callback',
        }
      end

      it 'creates a session' do
        VCR.use_cassette('passwordless/create_session') do
          response = described_class.create_session(valid_options)

          expect(response.email).to eq 'demo@workos-okta.com'
        end
      end
    end

    context 'with invalid event payload' do
      let(:invalid_options) do
        {}
      end

      it 'raises an error' do
        VCR.use_cassette('passwordless/create_session_invalid') do
          expect do
            described_class.create_session(invalid_options)
          end.to raise_error(
            WorkOS::UnprocessableEntityError,
            /Status 422, Validation failed \(email: email must be a string; type: type must be a valid enum value\)/,
          )
        end
      end
    end
  end

  describe '.send_session' do
    context 'with valid session id' do
      let(:valid_options) do
        {
          email: 'demo@workos-okta.com',
          type: 'MagicLink',
        }
      end

      it 'send a session' do
        VCR.use_cassette('passwordless/send_session') do
          response = described_class.send_session(
            'passwordless_session_01EJC0F4KH42T11Y2DHPEB09BM',
          )

          expect(response['success']).to eq true
        end
      end
    end

    context 'with invalid session id' do
      it 'raises an error' do
        VCR.use_cassette('passwordless/send_session_invalid') do
          expect do
            described_class.send_session('session_123')
          end.to raise_error(
            WorkOS::UnprocessableEntityError,
            /Status 422, The passwordless session 'session_123' has expired or is invalid./,
          )
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
workos-5.15.0 spec/lib/workos/passwordless_spec.rb
workos-5.14.0 spec/lib/workos/passwordless_spec.rb
workos-5.13.0 spec/lib/workos/passwordless_spec.rb
workos-5.12.0 spec/lib/workos/passwordless_spec.rb
workos-5.11.1 spec/lib/workos/passwordless_spec.rb
workos-5.11.0 spec/lib/workos/passwordless_spec.rb
workos-5.10.0 spec/lib/workos/passwordless_spec.rb
workos-5.9.0 spec/lib/workos/passwordless_spec.rb
workos-5.8.0 spec/lib/workos/passwordless_spec.rb
workos-5.7.0 spec/lib/workos/passwordless_spec.rb
workos-5.6.0 spec/lib/workos/passwordless_spec.rb
workos-5.5.1 spec/lib/workos/passwordless_spec.rb
workos-5.5.0 spec/lib/workos/passwordless_spec.rb
workos-5.4.0 spec/lib/workos/passwordless_spec.rb
workos-5.3.0 spec/lib/workos/passwordless_spec.rb
workos-5.2.1 spec/lib/workos/passwordless_spec.rb
workos-5.2.0 spec/lib/workos/passwordless_spec.rb
workos-5.1.0 spec/lib/workos/passwordless_spec.rb
workos-5.0.0 spec/lib/workos/passwordless_spec.rb