diff --git a/spec/models/ci/build_metadata_spec.rb b/spec/models/ci/build_metadata_spec.rb index c8a67535755..a50094c9d27 100644 --- a/spec/models/ci/build_metadata_spec.rb +++ b/spec/models/ci/build_metadata_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe Ci::BuildMetadata do + it_behaves_like 'Unique enum values' + set(:user) { create(:user) } set(:group) { create(:group, :access_requestable) } set(:project) { create(:project, :repository, group: group, build_timeout: 2000) } @@ -15,8 +17,6 @@ describe Ci::BuildMetadata do let(:build) { create(:ci_build, pipeline: pipeline) } let(:build_metadata) { build.metadata } - it_behaves_like 'Unique enum values' - describe '#update_timeout_state' do subject { build_metadata } diff --git a/spec/models/ci/build_trace_chunk_spec.rb b/spec/models/ci/build_trace_chunk_spec.rb index 8fbaa550633..7cf932a835a 100644 --- a/spec/models/ci/build_trace_chunk_spec.rb +++ b/spec/models/ci/build_trace_chunk_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' describe Ci::BuildTraceChunk, :clean_gitlab_redis_shared_state do include ExclusiveLeaseHelpers + it_behaves_like 'Unique enum values' + set(:build) { create(:ci_build, :running) } let(:chunk_index) { 0 } let(:data_store) { :redis } @@ -12,8 +14,6 @@ describe Ci::BuildTraceChunk, :clean_gitlab_redis_shared_state do described_class.new(build: build, chunk_index: chunk_index, data_store: data_store, raw_data: raw_data) end - it_behaves_like 'Unique enum values' - before do stub_feature_flags(ci_enable_live_trace: true) stub_artifacts_object_storage diff --git a/spec/models/ci/job_artifact_spec.rb b/spec/models/ci/job_artifact_spec.rb index 811b1a24fb4..097387767b6 100644 --- a/spec/models/ci/job_artifact_spec.rb +++ b/spec/models/ci/job_artifact_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe Ci::JobArtifact do + it_behaves_like 'Unique enum values' + let(:artifact) { create(:ci_job_artifact, :archive) } describe "Associations" do @@ -15,8 +17,6 @@ describe Ci::JobArtifact do it { is_expected.to delegate_method(:open).to(:file) } it { is_expected.to delegate_method(:exists?).to(:file) } - it_behaves_like 'Unique enum values' - describe '.test_reports' do subject { described_class.test_reports } diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 4526248be92..cd19cde850a 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe Ci::Pipeline, :mailer do + it_behaves_like 'Unique enum values' + let(:user) { create(:user) } set(:project) { create(:project) } @@ -28,8 +30,6 @@ describe Ci::Pipeline, :mailer do it { is_expected.to respond_to :short_sha } it { is_expected.to delegate_method(:full_path).to(:project).with_prefix } - it_behaves_like 'Unique enum values' - describe 'associations' do it 'has a bidirectional relationship with projects' do expect(described_class.reflect_on_association(:project).has_inverse?).to eq(:pipelines) diff --git a/spec/models/ci/stage_spec.rb b/spec/models/ci/stage_spec.rb index 0e5e309d0a7..82388a19ce6 100644 --- a/spec/models/ci/stage_spec.rb +++ b/spec/models/ci/stage_spec.rb @@ -1,10 +1,10 @@ require 'spec_helper' describe Ci::Stage, :models do - let(:stage) { create(:ci_stage_entity) } - it_behaves_like 'Unique enum values' + let(:stage) { create(:ci_stage_entity) } + describe 'associations' do before do create(:ci_build, stage_id: stage.id) diff --git a/spec/models/clusters/applications/ingress_spec.rb b/spec/models/clusters/applications/ingress_spec.rb index e06d14b714f..a4927dff78b 100644 --- a/spec/models/clusters/applications/ingress_spec.rb +++ b/spec/models/clusters/applications/ingress_spec.rb @@ -1,12 +1,13 @@ require 'rails_helper' describe Clusters::Applications::Ingress do + it_behaves_like 'Unique enum values' + let(:ingress) { create(:clusters_applications_ingress) } include_examples 'cluster application core specs', :clusters_applications_ingress include_examples 'cluster application status specs', :clusters_applications_ingress include_examples 'cluster application helm specs', :clusters_applications_ingress - it_behaves_like 'Unique enum values' before do allow(ClusterWaitForIngressIpAddressWorker).to receive(:perform_in) diff --git a/spec/models/clusters/cluster_spec.rb b/spec/models/clusters/cluster_spec.rb index 6e89c0f16e7..e892ce7d7a0 100644 --- a/spec/models/clusters/cluster_spec.rb +++ b/spec/models/clusters/cluster_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' describe Clusters::Cluster do + it_behaves_like 'Unique enum values' + it { is_expected.to belong_to(:user) } it { is_expected.to have_many(:cluster_projects) } it { is_expected.to have_many(:projects) } @@ -30,8 +32,6 @@ describe Clusters::Cluster do it { is_expected.to respond_to :project } - it_behaves_like 'Unique enum values' - describe '.enabled' do subject { described_class.enabled } diff --git a/spec/models/clusters/platforms/kubernetes_spec.rb b/spec/models/clusters/platforms/kubernetes_spec.rb index 8235e4667f9..43b1912f6d3 100644 --- a/spec/models/clusters/platforms/kubernetes_spec.rb +++ b/spec/models/clusters/platforms/kubernetes_spec.rb @@ -4,6 +4,8 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching include KubernetesHelpers include ReactiveCachingHelpers + it_behaves_like 'Unique enum values' + it { is_expected.to belong_to(:cluster) } it { is_expected.to be_kind_of(Gitlab::Kubernetes) } it { is_expected.to be_kind_of(ReactiveCaching) } @@ -18,8 +20,6 @@ describe Clusters::Platforms::Kubernetes, :use_clean_rails_memory_store_caching it { is_expected.to delegate_method(:managed?).to(:cluster) } it { is_expected.to delegate_method(:kubernetes_namespace).to(:cluster) } - it_behaves_like 'Unique enum values' - describe 'before_validation' do context 'when namespace includes upper case' do let(:kubernetes) { create(:cluster_platform_kubernetes, :configured, namespace: namespace) } diff --git a/spec/models/commit_status_spec.rb b/spec/models/commit_status_spec.rb index e7944c1b331..cc3292b813e 100644 --- a/spec/models/commit_status_spec.rb +++ b/spec/models/commit_status_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe CommitStatus do + it_behaves_like 'Unique enum values' + set(:project) { create(:project, :repository) } set(:pipeline) do @@ -29,8 +31,6 @@ describe CommitStatus do it { is_expected.to respond_to :running? } it { is_expected.to respond_to :pending? } - it_behaves_like 'Unique enum values' - describe '#author' do subject { commit_status.author } diff --git a/spec/models/gpg_signature_spec.rb b/spec/models/gpg_signature_spec.rb index f9237cff823..0a490a33b37 100644 --- a/spec/models/gpg_signature_spec.rb +++ b/spec/models/gpg_signature_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe GpgSignature do + it_behaves_like 'Unique enum values' + let(:commit_sha) { '0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33' } let!(:project) { create(:project, :repository, path: 'sample-project') } let!(:commit) { create(:commit, project: project, sha: commit_sha) } @@ -8,8 +10,6 @@ RSpec.describe GpgSignature do let(:gpg_key) { create(:gpg_key) } let(:gpg_key_subkey) { create(:gpg_key_subkey) } - it_behaves_like 'Unique enum values' - describe 'associations' do it { is_expected.to belong_to(:project) } it { is_expected.to belong_to(:gpg_key) } diff --git a/spec/models/internal_id_spec.rb b/spec/models/internal_id_spec.rb index 17a838db3ce..0ea0c5f17e4 100644 --- a/spec/models/internal_id_spec.rb +++ b/spec/models/internal_id_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe InternalId do + it_behaves_like 'Unique enum values' + let(:project) { create(:project) } let(:usage) { :issues } let(:issue) { build(:issue, project: project) } @@ -11,8 +13,6 @@ describe InternalId do it { is_expected.to validate_presence_of(:usage) } end - it_behaves_like 'Unique enum values' - describe '.generate_next' do subject { described_class.generate_next(issue, scope, usage, init) } diff --git a/spec/models/list_spec.rb b/spec/models/list_spec.rb index 1c14ca113d5..92c79b86078 100644 --- a/spec/models/list_spec.rb +++ b/spec/models/list_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' describe List do + it_behaves_like 'Unique enum values' + describe 'relationships' do it { is_expected.to belong_to(:board) } it { is_expected.to belong_to(:label) } @@ -21,8 +23,6 @@ describe List do end end - it_behaves_like 'Unique enum values' - describe '#destroy' do it 'can be destroyed when list_type is set to label' do subject = create(:list) diff --git a/spec/models/notification_setting_spec.rb b/spec/models/notification_setting_spec.rb index ad09172e36a..407b42fc5ee 100644 --- a/spec/models/notification_setting_spec.rb +++ b/spec/models/notification_setting_spec.rb @@ -1,13 +1,13 @@ require 'rails_helper' RSpec.describe NotificationSetting do + it_behaves_like 'Unique enum values' + describe "Associations" do it { is_expected.to belong_to(:user) } it { is_expected.to belong_to(:source) } end - it_behaves_like 'Unique enum values' - describe "Validation" do subject { described_class.new(source_id: 1, source_type: 'Project') } diff --git a/spec/models/project_auto_devops_spec.rb b/spec/models/project_auto_devops_spec.rb index cf9e6ccf87b..306705e15a8 100644 --- a/spec/models/project_auto_devops_spec.rb +++ b/spec/models/project_auto_devops_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe ProjectAutoDevops do + it_behaves_like 'Unique enum values' + set(:project) { build(:project) } it { is_expected.to belong_to(:project) } @@ -10,8 +12,6 @@ describe ProjectAutoDevops do it { is_expected.to respond_to(:created_at) } it { is_expected.to respond_to(:updated_at) } - it_behaves_like 'Unique enum values' - describe '#has_domain?' do context 'when domain is defined' do let(:auto_devops) { build_stubbed(:project_auto_devops, project: project, domain: 'domain.com') } diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index ea4a97c0745..c9579f22d2c 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -4,6 +4,8 @@ describe Project do include ProjectForksHelper include GitHelpers + it_behaves_like 'Unique enum values' + describe 'associations' do it { is_expected.to belong_to(:group) } it { is_expected.to belong_to(:namespace) } @@ -375,8 +377,6 @@ describe Project do end end - it_behaves_like 'Unique enum values' - describe 'Respond to' do it { is_expected.to respond_to(:url_to_repo) } it { is_expected.to respond_to(:repo_exists?) } diff --git a/spec/models/prometheus_metric_spec.rb b/spec/models/prometheus_metric_spec.rb index f1c209d8c3f..f7d9edc8ca1 100644 --- a/spec/models/prometheus_metric_spec.rb +++ b/spec/models/prometheus_metric_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' describe PrometheusMetric do + it_behaves_like 'Unique enum values' + subject { build(:prometheus_metric) } let(:other_project) { build(:project) } @@ -11,8 +13,6 @@ describe PrometheusMetric do it { is_expected.to validate_presence_of(:query) } it { is_expected.to validate_presence_of(:group) } - it_behaves_like 'Unique enum values' - describe 'common metrics' do using RSpec::Parameterized::TableSyntax diff --git a/spec/models/resource_label_event_spec.rb b/spec/models/resource_label_event_spec.rb index 2e718948c53..9523850cace 100644 --- a/spec/models/resource_label_event_spec.rb +++ b/spec/models/resource_label_event_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' RSpec.describe ResourceLabelEvent, type: :model do + it_behaves_like 'Unique enum values' + subject { build(:resource_label_event, issue: issue) } let(:issue) { create(:issue) } let(:merge_request) { create(:merge_request) } - it_behaves_like 'Unique enum values' - describe 'associations' do it { is_expected.to belong_to(:user) } it { is_expected.to belong_to(:issue) }