Commit 337cc118 authored by Desiree Chevalier's avatar Desiree Chevalier Committed by Désirée Chevalier

Add e2e test for custom issue templates

Adds an e2e test for custom issue templates
parent 41fcdee9
......@@ -3,7 +3,7 @@
- return unless issuable && issuable_templates(issuable).any?
.issuable-form-select-holder.selectbox.form-group
.js-issuable-selector-wrap{ data: { issuable_type: issuable.to_ability_name } }
.js-issuable-selector-wrap{ data: { issuable_type: issuable.to_ability_name, qa_selector: 'template_dropdown' } }
= template_dropdown_tag(issuable) do
%ul.dropdown-footer-list
%li
......
......@@ -28,6 +28,10 @@ module QA
element :assign_to_me_link
end
view 'app/views/shared/issuable/form/_template_selector.html.haml' do
element :template_dropdown
end
def fill_title(title)
fill_element :issuable_form_title, title
end
......@@ -43,6 +47,13 @@ module QA
end
end
def choose_template(template_name)
click_element :template_dropdown
within_element(:template_dropdown) do
click_on template_name
end
end
def select_label(label)
click_element :issuable_label
......
......@@ -5,7 +5,7 @@ require 'securerandom'
module QA
module Resource
class Issue < Base
attr_writer :description, :milestone, :weight
attr_writer :description, :milestone, :template, :weight
attribute :project do
Project.fabricate! do |resource|
......@@ -33,7 +33,8 @@ module QA
Page::Project::Issue::New.perform do |new_page|
new_page.fill_title(@title)
new_page.fill_description(@description)
new_page.choose_template(@template) if @template
new_page.fill_description(@description) if @description
new_page.choose_milestone(@milestone) if @milestone
new_page.create_new_issue
end
......
# frozen_string_literal: true
module QA
RSpec.describe 'Plan', :smoke do
RSpec.describe 'Plan' do
describe 'Issue creation' do
let(:closed_issue) { Resource::Issue.fabricate_via_api! }
......@@ -9,7 +9,7 @@ module QA
Flow::Login.sign_in
end
it 'creates an issue', :reliable, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1167' do
it 'creates an issue', :smoke, :reliable, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1167' do
issue = Resource::Issue.fabricate_via_browser_ui!
Page::Project::Menu.perform(&:click_issues)
......@@ -19,7 +19,7 @@ module QA
end
end
it 'closes an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1085' do
it 'closes an issue', :smoke, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1085' do
closed_issue.visit!
Page::Project::Issue::Show.perform do |issue_page|
......@@ -38,7 +38,7 @@ module QA
end
end
context 'when using attachments in comments', :object_storage do
context 'when using attachments in comments', :smoke, :object_storage do
let(:gif_file_name) { 'banana_sample.gif' }
let(:file_to_attach) do
File.absolute_path(File.join('qa', 'fixtures', 'designs', gif_file_name))
......@@ -56,6 +56,42 @@ module QA
end
end
end
context 'when using custom issue templates' do
let(:template_name) { 'custom_issue_template'}
let(:template_content) { 'This is a custom issue template test' }
let(:template_project) do
Resource::Project.fabricate_via_api! do |project|
project.name = "custom-issue-template-project-#{SecureRandom.hex(8)}"
project.initialize_with_readme = true
end
end
before do
Resource::Repository::Commit.fabricate_via_api! do |commit|
commit.project = template_project
commit.commit_message = 'Add custom issue template'
commit.add_files([
{
file_path: ".gitlab/issue_templates/#{template_name}.md",
content: template_content
}
])
end
end
it 'creates an issue via custom template', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1229' do
Resource::Issue.fabricate_via_browser_ui! do |issue|
issue.project = template_project
issue.template = template_name
end
Page::Project::Issue::Show.perform do |issue_page|
expect(issue_page).to have_content(template_content)
end
end
end
end
end
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