diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb index 3a8e68c58a67d11e3491982f1083894da6d11b38..81ce3f827967c0f70cba6ebdcf93884a0afa452e 100644 --- a/app/models/ci/pipeline.rb +++ b/app/models/ci/pipeline.rb @@ -1322,6 +1322,8 @@ def age_in_minutes raise ArgumentError, 'pipeline not fully loaded' end + return 0 unless created_at + (Time.current - created_at).ceil / 60 end diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 6ed92c4196f3a0ad27b4b900ba412833d1bd2eea..5713e322a8e865d976c45c401ed2f62853b39261 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -5339,6 +5339,16 @@ def create_bridge(upstream, downstream, depend = false) expect(pipeline.age_in_minutes).to eq 120 end end + + context 'when pipeline has no created_at' do + before do + pipeline.update!(created_at: nil) + end + + it 'returns zero' do + expect(pipeline.age_in_minutes).to eq 0 + end + end end context 'when pipeline has been loaded without all attributes' do