debian-mirror-gitlab/spec/features/issues/user_comments_on_issue_spec.rb

112 lines
3 KiB
Ruby
Raw Normal View History

2019-10-12 21:52:04 +05:30
# frozen_string_literal: true
2018-05-09 12:01:36 +05:30
require "spec_helper"
2020-06-23 00:09:42 +05:30
RSpec.describe "User comments on issue", :js do
2018-05-09 12:01:36 +05:30
include Spec::Support::Helpers::Features::NotesHelpers
let(:project) { create(:project_empty_repo, :public) }
let(:issue) { create(:issue, project: project) }
let(:user) { create(:user) }
before do
2022-03-02 08:16:31 +05:30
stub_feature_flags(sandboxed_mermaid: false)
2018-05-09 12:01:36 +05:30
project.add_guest(user)
sign_in(user)
visit(project_issue_path(project, issue))
end
context "when adding comments" do
it "adds comment" do
content = "XML attached"
target_form = ".js-main-target-form"
add_note(content)
page.within(".note") do
expect(page).to have_content(content)
end
page.within(target_form) do
find(".error-alert", visible: false)
end
end
it "adds comment with code block" do
2018-11-08 19:23:39 +05:30
code_block_content = "Command [1]: /usr/local/bin/git , see [text](doc/text)"
comment = "```\n#{code_block_content}\n```"
2018-05-09 12:01:36 +05:30
add_note(comment)
2018-11-08 19:23:39 +05:30
expect(page.find('pre code').text).to eq code_block_content
2018-05-09 12:01:36 +05:30
end
2018-11-29 20:51:05 +05:30
2020-03-13 15:44:24 +05:30
it "renders HTML content as text in Mermaid" do
2018-11-29 20:51:05 +05:30
html_content = "<img onerror=location=`javascript\\u003aalert\\u0028document.domain\\u0029` src=x>"
mermaid_content = "graph LR\n B-->D(#{html_content});"
comment = "```mermaid\n#{mermaid_content}\n```"
add_note(comment)
2022-03-02 08:16:31 +05:30
expect(page.find('svg.mermaid')).not_to have_content 'javascript'
2020-03-13 15:44:24 +05:30
within('svg.mermaid') { expect(page).not_to have_selector('img') }
2018-11-29 20:51:05 +05:30
end
2019-12-04 20:38:33 +05:30
it 'opens autocomplete menu for quick actions and have `/label` first choice' do
project.add_maintainer(user)
create(:label, project: project, title: 'label')
2021-04-29 21:17:54 +05:30
fill_in 'Comment', with: '/l'
2019-12-04 20:38:33 +05:30
2021-04-29 21:17:54 +05:30
expect(find_highlighted_autocomplete_item).to have_content('/label')
2019-12-04 20:38:33 +05:30
end
2018-05-09 12:01:36 +05:30
end
context "when editing comments" do
it "edits comment" do
add_note("# Comment with a header")
page.within(".note-body > .note-text") do
expect(page).to have_content("Comment with a header").and have_no_css("#comment-with-a-header")
end
page.within(".main-notes-list") do
note = find(".note")
note.hover
note.find(".js-note-edit").click
end
expect(page).to have_css(".current-note-edit-form textarea")
comment = "+1 Awesome!"
page.within(".current-note-edit-form") do
fill_in("note[note]", with: comment)
2018-11-08 19:23:39 +05:30
find('textarea').send_keys [:control, :shift, 'p']
expect(page).to have_selector('.current-note-edit-form .md-preview-holder')
expect(page.find('.current-note-edit-form .md-preview-holder p')).to have_content(comment)
end
expect(page).to have_selector('.new-note .note-textarea')
page.within(".current-note-edit-form") do
2018-05-09 12:01:36 +05:30
click_button("Save comment")
end
wait_for_requests
page.within(".note") do
expect(page).to have_content(comment)
end
end
end
2021-04-29 21:17:54 +05:30
private
def find_highlighted_autocomplete_item
find('.atwho-view li.cur', visible: true)
end
2018-05-09 12:01:36 +05:30
end