diff options
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/ci/build_spec.rb | 26 | ||||
-rw-r--r-- | spec/models/concerns/cache_markdown_field_spec.rb | 20 | ||||
-rw-r--r-- | spec/models/merge_request_spec.rb | 4 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 5 | ||||
-rw-r--r-- | spec/models/repository_spec.rb | 17 |
5 files changed, 51 insertions, 21 deletions
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index a6258676767..c5e23532aa5 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -132,11 +132,9 @@ describe Ci::Build do end describe '#artifacts?' do - context 'when new artifacts are used' do - let(:build) { create(:ci_build, :artifacts) } - - subject { build.artifacts? } + subject { build.artifacts? } + context 'when new artifacts are used' do context 'artifacts archive does not exist' do let(:build) { create(:ci_build) } @@ -144,25 +142,19 @@ describe Ci::Build do end context 'artifacts archive exists' do + let(:build) { create(:ci_build, :artifacts) } + it { is_expected.to be_truthy } context 'is expired' do - let!(:build) { create(:ci_build, :artifacts, :expired) } + let(:build) { create(:ci_build, :artifacts, :expired) } it { is_expected.to be_falsy } end - - context 'is not expired' do - it { is_expected.to be_truthy } - end end end context 'when legacy artifacts are used' do - let(:build) { create(:ci_build, :legacy_artifacts) } - - subject { build.artifacts? } - context 'artifacts archive does not exist' do let(:build) { create(:ci_build) } @@ -170,17 +162,15 @@ describe Ci::Build do end context 'artifacts archive exists' do + let(:build) { create(:ci_build, :legacy_artifacts) } + it { is_expected.to be_truthy } context 'is expired' do - let!(:build) { create(:ci_build, :legacy_artifacts, :expired) } + let(:build) { create(:ci_build, :legacy_artifacts, :expired) } it { is_expected.to be_falsy } end - - context 'is not expired' do - it { is_expected.to be_truthy } - end end end end diff --git a/spec/models/concerns/cache_markdown_field_spec.rb b/spec/models/concerns/cache_markdown_field_spec.rb index 129dfa07f15..3c7f578975b 100644 --- a/spec/models/concerns/cache_markdown_field_spec.rb +++ b/spec/models/concerns/cache_markdown_field_spec.rb @@ -102,6 +102,26 @@ describe CacheMarkdownField do it { expect(thing.cached_markdown_version).to eq(CacheMarkdownField::CACHE_VERSION) } end + context 'when a markdown field is set repeatedly to an empty string' do + it do + expect(thing).to receive(:refresh_markdown_cache).once + thing.foo = '' + thing.save + thing.foo = '' + thing.save + end + end + + context 'when a markdown field is set repeatedly to a string which renders as empty html' do + it do + expect(thing).to receive(:refresh_markdown_cache).once + thing.foo = '[//]: # (This is also a comment.)' + thing.save + thing.foo = '[//]: # (This is also a comment.)' + thing.save + end + end + context 'a non-markdown field changed' do before do thing.bar = 'OK' diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 30a5a3bbff7..6b98d013ded 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -124,6 +124,7 @@ describe MergeRequest do context 'when the target branch does not exist' do before do project.repository.rm_branch(subject.author, subject.target_branch) + subject.clear_memoized_shas end it 'returns nil' do @@ -733,7 +734,7 @@ describe MergeRequest do before do project.repository.raw_repository.delete_branch(subject.target_branch) - subject.reload + subject.clear_memoized_shas end it 'does not crash' do @@ -1468,6 +1469,7 @@ describe MergeRequest do context 'when the target branch does not exist' do before do subject.project.repository.rm_branch(subject.author, subject.target_branch) + subject.clear_memoized_shas end it 'returns nil' do diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index f4699fd243d..dd9e8498519 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1863,10 +1863,11 @@ describe Project do project.change_head(project.default_branch) end - it 'creates the new reference with rugged' do - expect(project.repository.rugged.references).to receive(:create).with('HEAD', + it 'creates the new reference' do + expect(project.repository.raw_repository).to receive(:write_ref).with('HEAD', "refs/heads/#{project.default_branch}", force: true) + project.change_head(project.default_branch) end diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 358bc3dfb94..129fce74f45 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -1916,6 +1916,23 @@ describe Repository do File.delete(path) end + + it "attempting to call keep_around when exists a lock does not fail" do + ref = repository.send(:keep_around_ref_name, sample_commit.id) + path = File.join(repository.path, ref) + lock_path = "#{path}.lock" + + FileUtils.mkdir_p(File.dirname(path)) + File.open(lock_path, 'w') { |f| f.write('') } + + begin + expect { repository.keep_around(sample_commit.id) }.not_to raise_error(Gitlab::Git::Repository::GitError) + + expect(File.exist?(lock_path)).to be_falsey + ensure + File.delete(path) + end + end end describe '#update_ref' do |