Codebase list ruby-gitlab / 3902111 spec / gitlab / client / tags_spec.rb
3902111

Tree @3902111 (Download .tar.gz)

tags_spec.rb @3902111

9962458
 
ec6860b
 
 
 
 
 
 
 
 
 
 
 
9962458
ec6860b
 
 
9962458
 
ec6860b
 
9962458
ec6860b
 
 
 
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
 
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
 
ec6860b
 
 
9962458
ec6860b
 
 
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
 
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
 
 
ec6860b
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
 
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
9962458
 
ec6860b
 
 
9962458
ec6860b
9962458
 
ec6860b
 
9962458
 
ec6860b
 
 
 
# frozen_string_literal: true

require 'spec_helper'

describe Gitlab::Client do
  it { is_expected.to respond_to :repo_tags }
  it { is_expected.to respond_to :repo_tag }
  it { is_expected.to respond_to :repo_create_tag }
  it { is_expected.to respond_to :repo_delete_tag }
  it { is_expected.to respond_to :repo_create_release }
  it { is_expected.to respond_to :repo_update_release }

  describe '.tags' do
    before do
      stub_get('/projects/3/repository/tags', 'tags')
      @tags = Gitlab.tags(3)
    end

    it 'gets the correct resource' do
      expect(a_get('/projects/3/repository/tags')).to have_been_made
    end

    it 'returns a paginated response of repository tags' do
      expect(@tags).to be_a Gitlab::PaginatedResponse
      expect(@tags.map(&:name)).to eq(%w[0.0.2 0.0.1])
    end
  end

  describe '.tag' do
    before do
      stub_get('/projects/3/repository/tags/0.0.1', 'tag')
      @tag = Gitlab.tag(3, '0.0.1')
    end

    it 'gets the correct resource' do
      expect(a_get('/projects/3/repository/tags/0.0.1')).to have_been_made
    end

    it 'returns information about a repository tag' do
      expect(@tag.name).to eq('0.0.1')
    end

    context 'tag with special character' do
      before do
        stub_get('/projects/3/repository/tags/test%2Fme', 'tag')
        @tag = Gitlab.tag(3, 'test/me')
      end

      it 'gets the correct resource' do
        expect(a_get('/projects/3/repository/tags/test%2Fme')).to have_been_made
      end
    end
  end

  describe '.create_tag' do
    before do
      stub_post('/projects/3/repository/tags', 'tag_create')
      @tag = Gitlab.create_tag(3, '0.0.1', 'master', 'this tag is annotated', 'and it has release notes')
    end

    it 'gets the correct resource' do
      expect(a_post('/projects/3/repository/tags')).to have_been_made
    end

    it 'returns information about a new repository tag' do
      expect(@tag.name).to eq('0.0.1')
      expect(@tag.message).to eq('this tag is annotated')
    end

    it 'returns detailed information' do
      expect(@tag.release.description).to eq('and it has release notes')
    end
  end

  describe '.delete_tag' do
    before do
      stub_delete('/projects/3/repository/tags/0.0.1', 'tag_delete')
      @tag = Gitlab.delete_tag(3, '0.0.1')
    end

    it 'gets the correct resource' do
      expect(a_delete('/projects/3/repository/tags/0.0.1')).to have_been_made
    end

    it 'returns information about the deleted repository tag' do
      expect(@tag.tag_name).to eq('0.0.1')
    end

    context 'tag with special character' do
      before do
        stub_delete('/projects/3/repository/tags/test%2Fme', 'tag_delete')
        @tag = Gitlab.delete_tag(3, 'test/me')
      end

      it 'gets the correct resource' do
        expect(a_delete('/projects/3/repository/tags/test%2Fme')).to have_been_made
      end
    end
  end

  describe '.create_release' do
    before do
      stub_post('/projects/3/repository/tags/0.0.1/release', 'release_create')
      @tag = Gitlab.create_release(3, '0.0.1', 'Amazing release. Wow')
    end

    it 'gets the correct resource' do
      expect(a_post('/projects/3/repository/tags/0.0.1/release')).to have_been_made
    end

    it 'returns information about the tag and the release' do
      expect(@tag.tag_name).to eq('0.0.1')
      expect(@tag.description).to eq('Amazing release. Wow')
    end

    context 'tag with special character' do
      before do
        stub_post('/projects/3/repository/tags/test%2Fme/release', 'release_create')
        @tag = Gitlab.create_release(3, 'test/me', 'Amazing release. Wow')
      end

      it 'gets the correct resource' do
        expect(a_post('/projects/3/repository/tags/test%2Fme/release')).to have_been_made
      end
    end
  end

  describe '.update_release' do
    before do
      stub_put('/projects/3/repository/tags/0.0.1/release', 'release_update')
      @tag = Gitlab.update_release(3, '0.0.1', 'Amazing release. Wow')
    end

    it 'updates the correct resource' do
      expect(a_put('/projects/3/repository/tags/0.0.1/release')).to have_been_made
    end

    it 'returns information about the tag' do
      expect(@tag.tag_name).to eq('0.0.1')
      expect(@tag.description).to eq('Amazing release. Wow')
    end

    context 'tag with special character' do
      before do
        stub_put('/projects/3/repository/tags/test%2Fme/release', 'release_update')
        @tag = Gitlab.update_release(3, 'test/me', 'Amazing release. Wow')
      end

      it 'updates the correct resource' do
        expect(a_put('/projects/3/repository/tags/test%2Fme/release')).to have_been_made
      end
    end
  end
end