bdc9322450
We can't properly use foreign keys on columns that are configured for polymorphic associations which has disadvantages related to data integrity and storage. Given we only use time tracking for Issues and Merge Requests we're moving to the usage of regular associations.
38 lines
1 KiB
Ruby
38 lines
1 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe Timelog, type: :model do
|
|
subject { build(:timelog) }
|
|
let(:issue) { create(:issue) }
|
|
let(:merge_request) { create(:merge_request) }
|
|
|
|
it { is_expected.to be_valid }
|
|
|
|
it { is_expected.to validate_presence_of(:time_spent) }
|
|
it { is_expected.to validate_presence_of(:user) }
|
|
|
|
describe 'Issuable validation' do
|
|
it 'is invalid if issue_id and merge_request_id are missing' do
|
|
subject.attributes = { issue: nil, merge_request: nil }
|
|
|
|
expect(subject).to be_invalid
|
|
end
|
|
|
|
it 'is invalid if issue_id and merge_request_id are set' do
|
|
subject.attributes = { issue: issue, merge_request: merge_request }
|
|
|
|
expect(subject).to be_invalid
|
|
end
|
|
|
|
it 'is valid if only issue_id is set' do
|
|
subject.attributes = { issue: issue, merge_request: nil }
|
|
|
|
expect(subject).to be_valid
|
|
end
|
|
|
|
it 'is valid if only merge_request_id is set' do
|
|
subject.attributes = { merge_request: merge_request, issue: nil }
|
|
|
|
expect(subject).to be_valid
|
|
end
|
|
end
|
|
end
|