|
|
|
|
@ -3,9 +3,9 @@ require "rails_helper"
|
|
|
|
|
RSpec.describe MergeRequest, type: :model do |
|
|
|
|
describe ".visible" do |
|
|
|
|
let(:open_collection_period_start_date) { 1.year.ago } |
|
|
|
|
let!(:merged_recent) { create(:merge_request, status: "request_merged", merge_date: 3.months.ago) } |
|
|
|
|
let!(:merged_old) { create(:merge_request, status: "request_merged", merge_date: 18.months.ago) } |
|
|
|
|
let!(:not_merged) { create(:merge_request, status: "incomplete") } |
|
|
|
|
let!(:merged_recent) { create(:merge_request, request_merged: true, merge_date: 3.months.ago) } |
|
|
|
|
let!(:merged_old) { create(:merge_request, request_merged: true, merge_date: 18.months.ago) } |
|
|
|
|
let!(:not_merged) { create(:merge_request, request_merged: false) } |
|
|
|
|
|
|
|
|
|
before do |
|
|
|
|
allow(FormHandler.instance).to receive(:start_date_of_earliest_open_collection_period).and_return(open_collection_period_start_date) |
|
|
|
|
@ -43,50 +43,50 @@ RSpec.describe MergeRequest, type: :model do
|
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
describe "#calculate_status" do |
|
|
|
|
describe "#status" do |
|
|
|
|
it "returns the correct status for deleted merge request" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, discarded_at: Time.zone.today) |
|
|
|
|
expect(merge_request.calculate_status).to eq "deleted" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:deleted] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns the correct status for a merged request" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, status: "request_merged") |
|
|
|
|
expect(merge_request.calculate_status).to eq "request_merged" |
|
|
|
|
merge_request = build(:merge_request, id: 1, request_merged: true) |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:request_merged] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns the correct status for a ready to merge request" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), merge_date: Time.zone.today) |
|
|
|
|
create(:merge_request_organisation, merge_request:) |
|
|
|
|
expect(merge_request.calculate_status).to eq "ready_to_merge" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:ready_to_merge] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns the merge issues if dsa is not signed for absorbing organisation" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation, with_dsa: false), merge_date: Time.zone.today) |
|
|
|
|
create(:merge_request_organisation, merge_request:) |
|
|
|
|
expect(merge_request.calculate_status).to eq "merge_issues" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:merge_issues] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns the incomplete if absorbing organisation is missing" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: nil, merge_date: Time.zone.today) |
|
|
|
|
create(:merge_request_organisation, merge_request:) |
|
|
|
|
expect(merge_request.calculate_status).to eq "incomplete" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns the incomplete if merge requests organisation is missing" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), merge_date: Time.zone.today) |
|
|
|
|
expect(merge_request.calculate_status).to eq "incomplete" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns the incomplete if merge date is missing" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation)) |
|
|
|
|
create(:merge_request_organisation, merge_request:) |
|
|
|
|
expect(merge_request.calculate_status).to eq "incomplete" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:incomplete] |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns processing if merge is processing" do |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), status: "processing") |
|
|
|
|
merge_request = build(:merge_request, id: 1, absorbing_organisation: create(:organisation), processing: true) |
|
|
|
|
create(:merge_request_organisation, merge_request:) |
|
|
|
|
expect(merge_request.calculate_status).to eq "processing" |
|
|
|
|
expect(merge_request.status).to eq MergeRequest::STATUS[:processing] |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|