summaryrefslogtreecommitdiff
path: root/spec/serializers/import/provider_repo_serializer_spec.rb
blob: 9bf55e6c65d9a97f3aa8117642d652969f29b4af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

require 'spec_helper'

describe Import::ProviderRepoSerializer do
  using RSpec::Parameterized::TableSyntax

  describe '#represent' do
    where(:provider, :class_name) do
      :github           | 'Import::GithubishProviderRepoEntity'
      :gitea            | 'Import::GithubishProviderRepoEntity'
      :bitbucket        | 'Import::BitbucketProviderRepoEntity'
      :bitbucket_server | 'Import::BitbucketServerProviderRepoEntity'
      :fogbugz          | 'Import::FogbugzProviderRepoEntity'
    end

    with_them do
      it 'uses correct entity class' do
        opts = { provider: provider }
        expect(class_name.constantize).to receive(:represent)
        described_class.new.represent({}, opts)
      end
    end

    it 'raises an error if invalid provider supplied' do
      expect { described_class.new.represent({}, { provider: :invalid })}.to raise_error { NotImplementedError }
    end
  end
end