summaryrefslogtreecommitdiff
path: root/spec/services/packages/go/sync_packages_service_spec.rb
blob: 2881b6fdac9ea6d826b2f5f73111983d5a2916b3 (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
30
31
32
33
34
35
36
37
38
39
40
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Packages::Go::SyncPackagesService, feature_category: :package_registry do
  include_context 'basic Go module'

  let(:params) { { info: true, mod: true, zip: true } }

  describe '#execute_async' do
    it 'schedules a package refresh' do
      expect(::Packages::Go::SyncPackagesWorker).to receive(:perform_async).once

      described_class.new(project, 'master').execute_async
    end
  end

  describe '#initialize' do
    context 'without a project' do
      it 'raises an error' do
        expect { described_class.new(nil, 'master') }
          .to raise_error(ArgumentError, 'project is required')
      end
    end

    context 'without a ref' do
      it 'raises an error' do
        expect { described_class.new(project, nil) }
          .to raise_error(ArgumentError, 'ref is required')
      end
    end

    context 'with an invalid ref' do
      it 'raises an error' do
        expect { described_class.new(project, 'not-a-ref') }
        .to raise_error(ArgumentError)
      end
    end
  end
end