summaryrefslogtreecommitdiff
path: root/spec/models/experiment_subject_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/experiment_subject_spec.rb')
-rw-r--r--spec/models/experiment_subject_spec.rb72
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