Skip to content
Snippets Groups Projects

File templates fetching refactor [RUN AS-IF-FOSS] [RUN ALL RSPEC]

Merged Alexandru Croitor requested to merge file-templates-fetching-refactor into master
All threads resolved!
7 files
+ 372
19
Compare changes
  • Side-by-side
  • Inline
Files
7
@@ -70,4 +70,49 @@
@@ -70,4 +70,49 @@
end
end
end
end
end
end
 
 
describe '#template_names' do
 
let_it_be(:template_files) do
 
{
 
"Dockerfile/project_dockerfiles_template.dockerfile" => "project_dockerfiles_template content",
 
"gitignore/project_gitignores_template.gitignore" => "project_gitignores_template content",
 
"gitlab-ci/project_gitlab_ci_ymls_template.yml" => "project_gitlab_ci_ymls_template content",
 
"metrics-dashboards/project_metrics_dashboard_ymls_template.yml" => "project_metrics_dashboard_ymls_template content",
 
".gitlab/issue_templates/project_issues_template.md" => "project_issues_template content",
 
".gitlab/merge_request_templates/project_merge_requests_template.md" => "project_merge_requests_template content"
 
}
 
end
 
 
let_it_be(:group, reload: true) { create(:group) }
 
let_it_be(:project, reload: true) { create(:project, group: group) }
 
let_it_be(:group_template_project, reload: true) { create(:project, :custom_repo, group: group, files: template_files) }
 
 
where(:type, :custom_name) do
 
:dockerfiles | 'project_dockerfiles_template'
 
:gitignores | 'project_gitignores_template'
 
:gitlab_ci_ymls | 'project_gitlab_ci_ymls_template'
 
:metrics_dashboard_ymls | 'project_metrics_dashboard_ymls_template'
 
end
 
 
before do
 
stub_licensed_features(custom_file_templates: true, custom_file_templates_for_namespace: true)
 
group.update_columns(file_template_project_id: group_template_project.id)
 
end
 
 
subject(:result) { described_class.new(type, project, params).template_names.values.flatten.map { |el| OpenStruct.new(el) } }
 
 
with_them do
 
context 'when project has a repository' do
 
it 'returns all custom templates' do
 
expect(result).to include(have_attributes(name: custom_name))
 
end
 
end
 
 
context 'template names hash keys' do
 
it 'has all the expected keys' do
 
expect(result.first.to_h.keys).to match_array(%i(id key name project_id))
 
end
 
end
 
end
 
end
end
end
Loading