Sha256: 1266b06599571f53a77541ede2ea359d10dccda56b178849abec2ef47fea709d

Contents?: true

Size: 1.91 KB

Versions: 13

Compression:

Stored size: 1.91 KB

Contents

# frozen_string_literal: true
# typed: false

describe WorkOS::Portal do
  it_behaves_like 'client'

  describe '.generate_link' do
    let(:organization) { 'org_01EHQMYV6MBK39QC5PZXHY59C3' }

    describe 'with a valid organization' do
      context 'with the sso intent' do
        it 'returns an Admin Portal link' do
          VCR.use_cassette 'portal/generate_link_sso' do
            portal_link = described_class.generate_link(
              intent: 'sso',
              organization: organization,
            )

            expect(portal_link).to eq(
              'https://id.workos.com/portal/launch?secret=secret',
            )
          end
        end
      end

      describe 'with the dsync intent' do
        it 'returns an Admin Portal link' do
          VCR.use_cassette 'portal/generate_link_dsync' do
            portal_link = described_class.generate_link(
              intent: 'dsync',
              organization: organization,
            )

            expect(portal_link).to eq(
              'https://id.workos.com/portal/launch?secret=secret',
            )
          end
        end
      end
    end

    describe 'with an invalid organization' do
      it 'raises an error' do
        VCR.use_cassette 'portal/generate_link_invalid' do
          expect do
            described_class.generate_link(
              intent: 'sso',
              organization: 'bogus-id',
            )
          end.to raise_error(
            WorkOS::InvalidRequestError,
            /Could not find an organization with the id, bogus-id/,
          )
        end
      end
    end

    describe 'with an invalid intent' do
      it 'raises an error' do
        expect do
          described_class.generate_link(
            intent: 'bogus-intent',
            organization: organization,
          )
        end.to raise_error(
          ArgumentError,
          /bogus-intent is not a valid value/,
        )
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
workos-2.6.0 spec/lib/workos/portal_spec.rb
workos-2.5.1 spec/lib/workos/portal_spec.rb
workos-2.5.0 spec/lib/workos/portal_spec.rb
workos-2.4.0 spec/lib/workos/portal_spec.rb
workos-2.3.0 spec/lib/workos/portal_spec.rb
workos-2.2.1 spec/lib/workos/portal_spec.rb
workos-2.2.0 spec/lib/workos/portal_spec.rb
workos-2.1.1 spec/lib/workos/portal_spec.rb
workos-2.1.0 spec/lib/workos/portal_spec.rb
workos-2.0.0 spec/lib/workos/portal_spec.rb
workos-1.6.1 spec/lib/workos/portal_spec.rb
workos-1.6.0 spec/lib/workos/portal_spec.rb
workos-1.5.1 spec/lib/workos/portal_spec.rb