Commit 103e45dc authored by Desiree Chevalier's avatar Desiree Chevalier

Add test case links to e2e shared examples

Adds test case links to shared examples and templated e2e specs
parent f3615927
......@@ -21,8 +21,8 @@ module QA
let(:tag_message) { 'Version 0.0.1' }
let(:tag_release_notes) { 'Release It!' }
shared_examples 'successful tag creation' do |user|
it "can be created by #{user}" do
shared_examples 'successful tag creation' do |user, testcase|
it "can be created by #{user}", testcase: testcase do
Flow::Login.sign_in(as: send(user))
create_tag_for_project(project, tag_name, tag_message, tag_release_notes)
......@@ -36,8 +36,8 @@ module QA
end
end
shared_examples 'unsuccessful tag creation' do |user|
it "cannot be created by an unauthorized #{user}" do
shared_examples 'unsuccessful tag creation' do |user, testcase|
it "cannot be created by an unauthorized #{user}", testcase: testcase do
Flow::Login.sign_in(as: send(user))
create_tag_for_project(project, tag_name, tag_message, tag_release_notes)
......@@ -54,8 +54,8 @@ module QA
add_members_to_project(project)
end
it_behaves_like 'successful tag creation', :developer_user
it_behaves_like 'successful tag creation', :maintainer_user
it_behaves_like 'successful tag creation', :developer_user, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347930'
it_behaves_like 'successful tag creation', :maintainer_user, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347929'
end
context 'when protected' do
......@@ -69,8 +69,8 @@ module QA
Page::Main::Menu.perform(&:sign_out)
end
it_behaves_like 'unsuccessful tag creation', :developer_user
it_behaves_like 'successful tag creation', :maintainer_user
it_behaves_like 'unsuccessful tag creation', :developer_user, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347927'
it_behaves_like 'successful tag creation', :maintainer_user, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347928'
end
def create_tag_for_project(project, name, message, release_notes)
......
......@@ -31,8 +31,8 @@ module QA
Flow::Login.sign_in
end
shared_examples 'milestone assigned to existing issue' do
it 'is assigned to an existing issue' do
shared_examples 'milestone assigned to existing issue' do |testcase|
it 'is assigned to an existing issue', testcase: testcase do
issue.visit!
Page::Project::Issue::Show.perform do |existing_issue|
......@@ -43,8 +43,8 @@ module QA
end
end
shared_examples 'milestone assigned to new issue' do
it 'is assigned to a new issue' do
shared_examples 'milestone assigned to new issue' do |testcase|
it 'is assigned to a new issue', testcase: testcase do
Resource::Issue.fabricate_via_browser_ui! do |new_issue|
new_issue.project = project
new_issue.milestone = milestone
......@@ -65,8 +65,8 @@ module QA
end
end
it_behaves_like 'milestone assigned to existing issue'
it_behaves_like 'milestone assigned to new issue'
it_behaves_like 'milestone assigned to existing issue', 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347964'
it_behaves_like 'milestone assigned to new issue', 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347965'
end
context 'Project milestone' do
......@@ -78,8 +78,8 @@ module QA
end
end
it_behaves_like 'milestone assigned to existing issue'
it_behaves_like 'milestone assigned to new issue'
it_behaves_like 'milestone assigned to existing issue', 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347962'
it_behaves_like 'milestone assigned to new issue', 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347963'
end
end
end
......
......@@ -18,30 +18,34 @@ module QA
file_name: '.gitignore',
name: 'Android',
api_path: 'gitignores',
api_key: 'Android'
api_key: 'Android',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347659'
},
{
file_name: '.gitlab-ci.yml',
name: 'Julia',
api_path: 'gitlab_ci_ymls',
api_key: 'Julia'
api_key: 'Julia',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347658'
},
{
file_name: 'Dockerfile',
name: 'Python',
api_path: 'dockerfiles',
api_key: 'Python'
api_key: 'Python',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347660'
},
{
file_name: 'LICENSE',
name: 'Mozilla Public License 2.0',
api_path: 'licenses',
api_key: 'mpl-2.0'
api_key: 'mpl-2.0',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347657'
}
]
templates.each do |template|
it "user adds #{template[:file_name]} via file template #{template[:name]}" do
it "user adds #{template[:file_name]} via file template #{template[:name]}", testcase: template[:testcase] do
content = fetch_template_from_api(template[:api_path], template[:api_key])
Flow::Login.sign_in
......
......@@ -28,8 +28,8 @@ module QA
project_snippet&.remove_via_api!
end
shared_examples 'comments on snippets' do |snippet_type|
it "adds, edits, and deletes a comment on a #{snippet_type}" do
shared_examples 'comments on snippets' do |snippet_type, testcase|
it "adds, edits, and deletes a comment on a #{snippet_type}", testcase: testcase do
send(snippet_type)
Page::Main::Menu.perform(&:sign_out)
......@@ -49,8 +49,8 @@ module QA
end
end
it_behaves_like 'comments on snippets', :personal_snippet
it_behaves_like 'comments on snippets', :project_snippet
it_behaves_like 'comments on snippets', :personal_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347816'
it_behaves_like 'comments on snippets', :project_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347817'
def create_comment
Page::Dashboard::Snippet::Show.perform do |snippet|
......
......@@ -28,8 +28,8 @@ module QA
project_snippet&.remove_via_api!
end
shared_examples 'adding file to snippet' do |snippet_type|
it "adds second file to an existing #{snippet_type} to make it multi-file" do
shared_examples 'adding file to snippet' do |snippet_type, testcase|
it "adds second file to an existing #{snippet_type} to make it multi-file", testcase: testcase do
send(snippet_type).visit!
Page::Dashboard::Snippet::Show.perform(&:click_edit_button)
......@@ -52,8 +52,8 @@ module QA
end
end
it_behaves_like 'adding file to snippet', :personal_snippet
it_behaves_like 'adding file to snippet', :project_snippet
it_behaves_like 'adding file to snippet', :personal_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347845'
it_behaves_like 'adding file to snippet', :project_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347846'
end
end
end
......@@ -59,8 +59,8 @@ module QA
project_snippet&.remove_via_api!
end
shared_examples 'copying snippet file contents' do |snippet_type|
it "copies file contents of a multi-file #{snippet_type} to a comment and verifies them" do
shared_examples 'copying snippet file contents' do |snippet_type, testcase|
it "copies file contents of a multi-file #{snippet_type} to a comment and verifies them", testcase: testcase do
send(snippet_type).visit!
files.each do |files|
......@@ -73,8 +73,8 @@ module QA
end
end
it_behaves_like 'copying snippet file contents', :personal_snippet
it_behaves_like 'copying snippet file contents', :project_snippet
it_behaves_like 'copying snippet file contents', :personal_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347849'
it_behaves_like 'copying snippet file contents', :project_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347848'
end
end
end
......@@ -36,8 +36,8 @@ module QA
project_snippet&.remove_via_api!
end
shared_examples 'deleting file from snippet' do |snippet_type|
it "deletes second file from an existing #{snippet_type} to make it single-file" do
shared_examples 'deleting file from snippet' do |snippet_type, testcase|
it "deletes second file from an existing #{snippet_type} to make it single-file", testcase: testcase do
send(snippet_type).visit!
Page::Dashboard::Snippet::Show.perform(&:click_edit_button)
......@@ -58,8 +58,8 @@ module QA
end
end
it_behaves_like 'deleting file from snippet', :personal_snippet
it_behaves_like 'deleting file from snippet', :project_snippet
it_behaves_like 'deleting file from snippet', :personal_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347728'
it_behaves_like 'deleting file from snippet', :project_snippet, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347727'
end
end
end
......@@ -56,8 +56,8 @@ module QA
project_snippet_with_multiple_files.remove_via_api!
end
shared_examples 'displaying details on index page' do |snippet_type|
it "shows correct details of #{snippet_type} including file number" do
shared_examples 'displaying details on index page' do |snippet_type, testcase|
it "shows correct details of #{snippet_type} including file number", testcase: testcase do
send(snippet_type)
Page::Main::Menu.perform do |menu|
menu.go_to_menu_dropdown_option(:snippets_link)
......@@ -73,10 +73,10 @@ module QA
end
end
it_behaves_like 'displaying details on index page', :personal_snippet_with_single_file
it_behaves_like 'displaying details on index page', :personal_snippet_with_multiple_files
it_behaves_like 'displaying details on index page', :project_snippet_with_single_file
it_behaves_like 'displaying details on index page', :project_snippet_with_multiple_files
it_behaves_like 'displaying details on index page', :personal_snippet_with_single_file, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347717'
it_behaves_like 'displaying details on index page', :personal_snippet_with_multiple_files, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347720'
it_behaves_like 'displaying details on index page', :project_snippet_with_single_file, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347718'
it_behaves_like 'displaying details on index page', :project_snippet_with_multiple_files, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347719'
end
end
end
......@@ -18,30 +18,34 @@ module QA
file_name: '.gitignore',
name: 'Android',
api_path: 'gitignores',
api_key: 'Android'
api_key: 'Android',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347752'
},
{
file_name: '.gitlab-ci.yml',
name: 'Julia',
api_path: 'gitlab_ci_ymls',
api_key: 'Julia'
api_key: 'Julia',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347753'
},
{
file_name: 'Dockerfile',
name: 'Python',
api_path: 'dockerfiles',
api_key: 'Python'
api_key: 'Python',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347750'
},
{
file_name: 'LICENSE',
name: 'Mozilla Public License 2.0',
api_path: 'licenses',
api_key: 'mpl-2.0'
api_key: 'mpl-2.0',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347751'
}
]
templates.each do |template|
it "user adds #{template[:file_name]} via file template #{template[:name]}" do
it "user adds #{template[:file_name]} via file template #{template[:name]}", testcase: template[:testcase] do
content = fetch_template_from_api(template[:api_path], template[:api_key])
Flow::Login.sign_in
......
......@@ -33,13 +33,13 @@ module QA
end
keys = [
[Runtime::Key::RSA, 8192],
[Runtime::Key::ECDSA, 521],
[Runtime::Key::ED25519]
['https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348022', Runtime::Key::RSA, 8192],
['https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348021', Runtime::Key::ECDSA, 521],
['https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348020', Runtime::Key::ED25519]
]
keys.each do |(key_class, bits)|
it "user sets up a deploy key with #{key_class}(#{bits}) to clone code using pipelines" do
keys.each do |(testcase, key_class, bits)|
it "user sets up a deploy key with #{key_class}(#{bits}) to clone code using pipelines", testcase: testcase do
key = key_class.new(*bits)
Resource::DeployKey.fabricate_via_browser_ui! do |resource|
......
......@@ -3,6 +3,8 @@
module QA
RSpec.describe 'Configure' do
describe 'AutoDevOps Templates', only: { subdomain: :staging } do
using RSpec::Parameterized::TableSyntax
# specify jobs to be disabled in the pipeline.
# CANARY_ENABLED will allow the pipeline to be
# blocked by a manual job, rather than fail
......@@ -17,8 +19,8 @@ module QA
]
end
where(:template) do
%w[express]
where(:case_name, :template, :testcase) do
'using express template' | 'express' | 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/348075'
end
with_them do
......@@ -45,7 +47,7 @@ module QA
Flow::Login.sign_in
end
it 'works with Auto DevOps' do
it 'works with Auto DevOps', testcase: params[:testcase] do
%w[build code_quality test].each do |job|
pipeline.visit!
......
......@@ -10,25 +10,29 @@ module QA
file_name: 'Dockerfile',
template: 'custom_dockerfile',
file_path: 'Dockerfile/custom_dockerfile.dockerfile',
content: 'dockerfile template test'
content: 'dockerfile template test',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347656'
},
{
file_name: '.gitignore',
template: 'custom_gitignore',
file_path: 'gitignore/custom_gitignore.gitignore',
content: 'gitignore template test'
content: 'gitignore template test',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347655'
},
{
file_name: '.gitlab-ci.yml',
template: 'custom_gitlab-ci',
file_path: 'gitlab-ci/custom_gitlab-ci.yml',
content: 'gitlab-ci.yml template test'
content: 'gitlab-ci.yml template test',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347653'
},
{
file_name: 'LICENSE',
template: 'custom_license',
file_path: 'LICENSE/custom_license.txt',
content: 'license template test'
content: 'license template test',
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347654'
}
]
......@@ -78,7 +82,7 @@ module QA
end
templates.each do |template|
it "creates file via custom #{template[:file_name]} file template" do
it "creates file via custom #{template[:file_name]} file template", testcase: template[:testcase] do
Flow::Login.sign_in_as_admin
set_file_template_if_not_already_set
......
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