Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/seeders/ci/catalog/resource_seeder_spec.rb')
-rw-r--r--spec/lib/gitlab/seeders/ci/catalog/resource_seeder_spec.rb52
1 files changed, 43 insertions, 9 deletions
diff --git a/spec/lib/gitlab/seeders/ci/catalog/resource_seeder_spec.rb b/spec/lib/gitlab/seeders/ci/catalog/resource_seeder_spec.rb
index 4bd4455d1bd..f4f38a861ee 100644
--- a/spec/lib/gitlab/seeders/ci/catalog/resource_seeder_spec.rb
+++ b/spec/lib/gitlab/seeders/ci/catalog/resource_seeder_spec.rb
@@ -7,10 +7,11 @@ RSpec.describe ::Gitlab::Seeders::Ci::Catalog::ResourceSeeder, feature_category:
let_it_be_with_reload(:group) { create(:group) }
let_it_be(:seed_count) { 2 }
let_it_be(:last_resource_id) { seed_count - 1 }
+ let(:publish) { true }
let(:group_path) { group.path }
- subject(:seeder) { described_class.new(group_path: group_path, seed_count: seed_count) }
+ subject(:seeder) { described_class.new(group_path: group_path, seed_count: seed_count, publish: publish) }
before_all do
group.add_owner(admin)
@@ -28,12 +29,26 @@ RSpec.describe ::Gitlab::Seeders::Ci::Catalog::ResourceSeeder, feature_category:
end
context 'when project name already exists' do
- before do
- create(:project, namespace: group, name: "ci_seed_resource_0")
+ context 'in the same group' do
+ before do
+ create(:project, namespace: group, name: 'ci_seed_resource_0')
+ end
+
+ it 'skips that project creation and keeps seeding' do
+ expect { seed }.to change { Project.count }.by(seed_count - 1)
+ end
end
- it 'skips that project creation and keeps seeding' do
- expect { seed }.to change { Project.count }.by(seed_count - 1)
+ context 'in a different group' do
+ let(:new_group) { create(:group) }
+
+ before do
+ create(:project, namespace: new_group, name: 'ci_seed_resource_0')
+ end
+
+ it 'executes the project creation' do
+ expect { seed }.to change { Project.count }.by(seed_count)
+ end
end
end
@@ -65,6 +80,26 @@ RSpec.describe ::Gitlab::Seeders::Ci::Catalog::ResourceSeeder, feature_category:
end
end
+ describe 'publish argument' do
+ context 'when false' do
+ let(:publish) { false }
+
+ it 'creates catalog resources in draft state' do
+ group.projects.each do |project|
+ expect(project.catalog_resource.state).to be('draft')
+ end
+ end
+ end
+
+ context 'when true' do
+ it 'creates catalog resources in published state' do
+ group.projects.each do |project|
+ expect(project.catalog_resource&.state).to be('published')
+ end
+ end
+ end
+ end
+
it 'skips seeding a project if the project name already exists' do
# We call the same command twice, as it means it would try to recreate
# projects that were already created!
@@ -87,12 +122,11 @@ RSpec.describe ::Gitlab::Seeders::Ci::Catalog::ResourceSeeder, feature_category:
project = group.projects.last
default_branch = project.default_branch_or_main
- expect(project.repository.blob_at(default_branch, "README.md")).not_to be_nil
- expect(project.repository.blob_at(default_branch, "template.yml")).not_to be_nil
+ expect(project.repository.blob_at(default_branch, 'README.md')).not_to be_nil
+ expect(project.repository.blob_at(default_branch, 'templates/component.yml')).not_to be_nil
end
- # This should be run again when fixing: https://gitlab.com/gitlab-org/gitlab/-/issues/429649
- xit 'creates projects with CI catalog resources' do
+ it 'creates projects with CI catalog resources' do
expect { seed }.to change { Project.count }.by(seed_count)
expect(group.projects.all?(&:catalog_resource)).to eq true