Skip to content
Snippets Groups Projects
Commit 86b41929 authored by Robert Speicher's avatar Robert Speicher
Browse files

Update `Project#update_mirror` to respect update frequencies

parent e6e493fe
No related branches found
No related tags found
1 merge request!299WIP: Support configurable mirror update frequency
Loading
Loading
@@ -527,9 +527,9 @@ def mirror_ever_updated_successfully?
mirror_updated? && self.mirror_last_successful_update_at
end
 
def update_mirror
def update_mirror(force: true)
return unless mirror?
return if mirror_recently_updated? && !force
return if import_in_progress?
 
if import_failed?
Loading
Loading
Loading
Loading
@@ -67,6 +67,11 @@
import_status :started
end
 
trait :import_failed do
import_started
import_status :failed
end
trait :import_finished do
import_started
import_status :finished
Loading
Loading
Loading
Loading
@@ -224,6 +224,49 @@
end
end
 
describe '#update_mirror' do
it 'returns early for non-mirrors' do
project = build(:empty_project)
expect(project).not_to receive(:import_in_progress?)
expect(project.update_mirror).to eq nil
end
it 'returns early for recently-updated mirrors not forcing an update' do
project = build(:empty_project, :mirror, :import_started)
expect(project).to receive(:mirror_recently_updated?).and_return(true)
expect(project).not_to receive(:import_in_progress?)
expect(project.update_mirror(force: false)).to eq nil
end
it 'returns early for imports in progress' do
project = build(:empty_project, :mirror, :import_started)
expect(project).not_to receive(:import_failed?)
expect(project.update_mirror).to eq nil
end
it 'retries failed imports' do
project = build(:empty_project, :mirror, :import_failed)
expect(project).to receive(:import_retry)
project.update_mirror
end
it 'starts fresh imports' do
project = build(:empty_project, :mirror, :import_finished)
expect(project).to receive(:import_start)
project.update_mirror
end
end
describe '#get_issue' do
let(:project) { create(:empty_project) }
let!(:issue) { create(:issue, project: project) }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment