diff options
Diffstat (limited to 'spec/models/experiment_subject_spec.rb')
-rw-r--r-- | spec/models/experiment_subject_spec.rb | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/spec/models/experiment_subject_spec.rb b/spec/models/experiment_subject_spec.rb deleted file mode 100644 index d86dc3cbf65..00000000000 --- a/spec/models/experiment_subject_spec.rb +++ /dev/null @@ -1,72 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe ExperimentSubject, type: :model do - describe 'associations' do - it { is_expected.to belong_to(:experiment) } - it { is_expected.to belong_to(:user) } - it { is_expected.to belong_to(:namespace) } - it { is_expected.to belong_to(:project) } - end - - describe 'validations' do - it { is_expected.to validate_presence_of(:experiment) } - - describe 'must_have_one_subject_present' do - let(:experiment_subject) { build(:experiment_subject, user: nil, namespace: nil, project: nil) } - let(:error_message) { 'Must have exactly one of User, Namespace, or Project.' } - - it 'fails when no subject is present' do - expect(experiment_subject).not_to be_valid - expect(experiment_subject.errors[:base]).to include(error_message) - end - - it 'passes when user subject is present' do - experiment_subject.user = build(:user) - expect(experiment_subject).to be_valid - end - - it 'passes when namespace subject is present' do - experiment_subject.namespace = build(:group) - expect(experiment_subject).to be_valid - end - - it 'passes when project subject is present' do - experiment_subject.project = build(:project) - expect(experiment_subject).to be_valid - end - - it 'fails when more than one subject is present', :aggregate_failures do - # two subjects - experiment_subject.user = build(:user) - experiment_subject.namespace = build(:group) - expect(experiment_subject).not_to be_valid - expect(experiment_subject.errors[:base]).to include(error_message) - - # three subjects - experiment_subject.project = build(:project) - expect(experiment_subject).not_to be_valid - expect(experiment_subject.errors[:base]).to include(error_message) - end - end - end - - describe '.valid_subject?' do - subject(:valid_subject?) { described_class.valid_subject?(subject_class.new) } - - context 'when passing a Group, Namespace, User or Project' do - [Group, Namespace, User, Project].each do |subject_class| - let(:subject_class) { subject_class } - - it { is_expected.to be(true) } - end - end - - context 'when passing another object' do - let(:subject_class) { Issue } - - it { is_expected.to be(false) } - end - end -end |