Commit ae851edc authored by Luke Bennett's avatar Luke Bennett

Added no-template functionality

Added tests
parent 2362dfee
...@@ -16,7 +16,13 @@ ...@@ -16,7 +16,13 @@
if (initialQuery.name) this.requestFile(initialQuery); if (initialQuery.name) this.requestFile(initialQuery);
$('.reset-template', this.dropdown.parent()).on('click', () => { $('.reset-template', this.dropdown.parent()).on('click', () => {
if (this.currentTemplate) this.setInputValueToTemplateContent(false); this.setInputValueToTemplateContent();
});
$('.no-template', this.dropdown.parent()).on('click', () => {
this.currentTemplate = '';
this.setInputValueToTemplateContent();
$('.dropdown-toggle-text', this.dropdown).text('Choose a template');
}); });
} }
......
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
data: { data: issuable_template_names, field_name: 'issuable_template', selected: selected_template(issuable), project_path: ref_project.path, namespace_path: ref_project.namespace.path } } ) do data: { data: issuable_template_names, field_name: 'issuable_template', selected: selected_template(issuable), project_path: ref_project.path, namespace_path: ref_project.namespace.path } } ) do
%ul.dropdown-footer-list %ul.dropdown-footer-list
%li %li
%a.no-template
No template
%a.reset-template %a.reset-template
Reset template Reset template
%div{ class: issuable_template_names.any? ? 'col-sm-7 col-lg-8' : 'col-sm-10' } %div{ class: issuable_template_names.any? ? 'col-sm-7 col-lg-8' : 'col-sm-10' }
......
...@@ -15,6 +15,7 @@ feature 'issuable templates', feature: true, js: true do ...@@ -15,6 +15,7 @@ feature 'issuable templates', feature: true, js: true do
let(:template_content) { 'this is a test "bug" template' } let(:template_content) { 'this is a test "bug" template' }
let(:longtemplate_content) { %Q(this\n\n\n\n\nis\n\n\n\n\na\n\n\n\n\nbug\n\n\n\n\ntemplate) } let(:longtemplate_content) { %Q(this\n\n\n\n\nis\n\n\n\n\na\n\n\n\n\nbug\n\n\n\n\ntemplate) }
let(:issue) { create(:issue, author: user, assignee: user, project: project) } let(:issue) { create(:issue, author: user, assignee: user, project: project) }
let(:description_addition) { ' appending to description' }
background do background do
project.repository.commit_file(user, '.gitlab/issue_templates/bug.md', template_content, 'added issue template', 'master', false) project.repository.commit_file(user, '.gitlab/issue_templates/bug.md', template_content, 'added issue template', 'master', false)
...@@ -26,7 +27,26 @@ feature 'issuable templates', feature: true, js: true do ...@@ -26,7 +27,26 @@ feature 'issuable templates', feature: true, js: true do
scenario 'user selects "bug" template' do scenario 'user selects "bug" template' do
select_template 'bug' select_template 'bug'
wait_for_ajax wait_for_ajax
preview_template(template_content) preview_template
save_changes
end
scenario 'user selects "bug" template and then "no template"' do
select_template 'bug'
wait_for_ajax
select_option 'No template'
wait_for_ajax
preview_template('')
save_changes('')
end
scenario 'user selects "bug" template, edits description and then selects "reset template"' do
select_template 'bug'
wait_for_ajax
find_field('issue_description').send_keys(description_addition)
preview_template(template_content + description_addition)
select_option 'Reset template'
preview_template
save_changes save_changes
end end
...@@ -37,7 +57,7 @@ feature 'issuable templates', feature: true, js: true do ...@@ -37,7 +57,7 @@ feature 'issuable templates', feature: true, js: true do
wait_for_ajax wait_for_ajax
end_height = page.evaluate_script('$(".markdown-area").outerHeight()') end_height = page.evaluate_script('$(".markdown-area").outerHeight()')
expect(end_height).not_to eq(start_height) expect(end_height).not_to eq(start_height)
end end
end end
...@@ -75,7 +95,7 @@ feature 'issuable templates', feature: true, js: true do ...@@ -75,7 +95,7 @@ feature 'issuable templates', feature: true, js: true do
scenario 'user selects "feature-proposal" template' do scenario 'user selects "feature-proposal" template' do
select_template 'feature-proposal' select_template 'feature-proposal'
wait_for_ajax wait_for_ajax
preview_template(template_content) preview_template
save_changes save_changes
end end
end end
...@@ -102,25 +122,31 @@ feature 'issuable templates', feature: true, js: true do ...@@ -102,25 +122,31 @@ feature 'issuable templates', feature: true, js: true do
scenario 'user selects template' do scenario 'user selects template' do
select_template 'feature-proposal' select_template 'feature-proposal'
wait_for_ajax wait_for_ajax
preview_template(template_content) preview_template
save_changes save_changes
end end
end end
end end
end end
def preview_template(expected_content) def preview_template(expected_content = template_content)
click_link 'Preview' click_link 'Preview'
expect(page).to have_content expected_content expect(page).to have_content expected_content
click_link 'Write'
end end
def save_changes def save_changes(expected_content = template_content)
click_button "Save changes" click_button "Save changes"
expect(page).to have_content template_content expect(page).to have_content expected_content
end end
def select_template(name) def select_template(name)
first('.js-issuable-selector').click first('.js-issuable-selector').click
first('.js-issuable-selector-wrap .dropdown-content a', text: name).click first('.js-issuable-selector-wrap .dropdown-content a', text: name).click
end end
def select_option(name)
first('.js-issuable-selector').click
first('.js-issuable-selector-wrap .dropdown-footer-list a', text: name).click
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