Commit e6e01c50 authored by Nicolò Maria Mezzopera's avatar Nicolò Maria Mezzopera Committed by Mark Lapierre

Add details page test to infra registry feature spec

parent 5c16ff17
......@@ -38,18 +38,16 @@ RSpec.describe 'Group Packages' do
context 'when there are packages' do
let_it_be(:second_project) { create(:project, name: 'second-project', group: group) }
let_it_be(:conan_package) { create(:conan_package, project: project, name: 'zzz', created_at: 1.day.ago, version: '1.0.0') }
let_it_be(:npm_package) { create(:npm_package, project: project, name: 'zzz', created_at: 1.day.ago, version: '1.0.0') }
let_it_be(:maven_package) { create(:maven_package, project: second_project, name: 'aaa', created_at: 2.days.ago, version: '2.0.0') }
let_it_be(:packages) { [conan_package, maven_package] }
let_it_be(:packages) { [npm_package, maven_package] }
it_behaves_like 'packages list', check_project_name: true
it_behaves_like 'package details link'
it 'allows you to navigate to the project page' do
page.within('[data-qa-selector="packages-table"]') do
find('[data-qa-selector="package-path"]', text: project.name).click
end
find('[data-testid="root-link"]', text: project.name).click
expect(page).to have_current_path(project_path(project))
expect(page).to have_content(project.name)
......@@ -58,15 +56,15 @@ RSpec.describe 'Group Packages' do
context 'sorting' do
it_behaves_like 'shared package sorting' do
let_it_be(:package_one) { maven_package }
let_it_be(:package_two) { conan_package }
let_it_be(:package_two) { npm_package }
end
it_behaves_like 'correctly sorted packages list', 'Project' do
let(:packages) { [maven_package, conan_package] }
let(:packages) { [maven_package, npm_package] }
end
it_behaves_like 'correctly sorted packages list', 'Project', ascending: true do
let(:packages) { [conan_package, maven_package] }
let(:packages) { [npm_package, maven_package] }
end
end
end
......
......@@ -28,13 +28,30 @@ RSpec.describe 'Infrastructure Registry' do
visit_project_infrastructure_registry
end
context 'when there are packages' do
context 'when there are modules' do
let_it_be(:terraform_module) { create(:terraform_module_package, project: project, created_at: 1.day.ago, version: '1.0.0') }
let_it_be(:terraform_module2) { create(:terraform_module_package, project: project, created_at: 2.days.ago, version: '2.0.0') }
let_it_be(:packages) { [terraform_module, terraform_module2] }
it_behaves_like 'packages list'
context 'details link' do
it 'navigates to the correct url' do
page.within(packages_table_selector) do
click_link terraform_module.name
end
expect(page).to have_current_path(project_infrastructure_registry_path(terraform_module.project, terraform_module))
expect(page).to have_css('.packages-app h1[data-testid="title"]', text: terraform_module.name)
page.within(%Q([name="#{terraform_module.name}"])) do
expect(page).to have_content('Provision instructions')
expect(page).to have_content('Registry setup')
end
end
end
context 'deleting a package' do
let_it_be(:project) { create(:project) }
let_it_be(:terraform_module) { create(:terraform_module_package, project: project) }
......
......@@ -31,9 +31,9 @@ RSpec.describe 'Packages' do
end
context 'when there are packages' do
let_it_be(:conan_package) { create(:conan_package, project: project, name: 'zzz', created_at: 1.day.ago, version: '1.0.0') }
let_it_be(:npm_package) { create(:npm_package, project: project, name: 'zzz', created_at: 1.day.ago, version: '1.0.0') }
let_it_be(:maven_package) { create(:maven_package, project: project, name: 'aaa', created_at: 2.days.ago, version: '2.0.0') }
let_it_be(:packages) { [conan_package, maven_package] }
let_it_be(:packages) { [npm_package, maven_package] }
it_behaves_like 'packages list'
......@@ -54,7 +54,7 @@ RSpec.describe 'Packages' do
it_behaves_like 'shared package sorting' do
let_it_be(:package_one) { maven_package }
let_it_be(:package_two) { conan_package }
let_it_be(:package_two) { npm_package }
end
end
......
......@@ -32,11 +32,9 @@ RSpec.shared_examples 'package details link' do |property|
expect(page).to have_current_path(project_package_path(package.project, package))
page.within('[data-qa-selector="package_title"]') do
expect(page).to have_content(package.name)
end
expect(page).to have_css('.packages-app h1[data-testid="title"]', text: package.name)
page.within('[data-qa-selector="package_information_content"]') do
page.within(%Q([name="#{package.name}"])) do
expect(page).to have_content('Installation')
expect(page).to have_content('Registry setup')
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment