diff options
Diffstat (limited to 'spec/features/markdown')
-rw-r--r-- | spec/features/markdown/copy_as_gfm_spec.rb | 12 | ||||
-rw-r--r-- | spec/features/markdown/gitlab_flavored_markdown_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/markdown/json_table_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/markdown/keyboard_shortcuts_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/markdown/kroki_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/markdown/markdown_spec.rb | 9 | ||||
-rw-r--r-- | spec/features/markdown/math_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/markdown/metrics_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/markdown/observability_spec.rb | 83 | ||||
-rw-r--r-- | spec/features/markdown/sandboxed_mermaid_spec.rb | 2 |
10 files changed, 104 insertions, 14 deletions
diff --git a/spec/features/markdown/copy_as_gfm_spec.rb b/spec/features/markdown/copy_as_gfm_spec.rb index b5bf9279371..8073e7e9556 100644 --- a/spec/features/markdown/copy_as_gfm_spec.rb +++ b/spec/features/markdown/copy_as_gfm_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Copy as GFM', :js do +RSpec.describe 'Copy as GFM', :js, feature_category: :team_planning do include MarkupHelper include RepoHelpers include ActionView::Helpers::JavaScriptHelper @@ -26,7 +26,7 @@ RSpec.describe 'Copy as GFM', :js do # by verifying (`html_to_gfm(gfm_to_html(gfm)) == gfm`) for a number of examples of GFM for every filter, using the `verify` helper. # These are all in a single `it` for performance reasons. - it 'works', :aggregate_failures do + it 'transforms HTML to GFM', :aggregate_failures do verify( 'nesting', '> 1. [x] **[$`2 + 2`$ {-=-}{+=+} 2^2 ~~:thumbsup:~~](http://google.com)**' @@ -459,25 +459,25 @@ RSpec.describe 'Copy as GFM', :js do </a> </div> <!----> - <button type="button" class="btn qa-apply-btn js-apply-btn">Apply suggestion</button> + <button type="button" class="btn js-apply-btn">Apply suggestion</button> </div> <table class="mb-3 md-suggestion-diff js-syntax-highlight code white"> <tbody> <tr class="line_holder old"> - <td class="diff-line-num old_line qa-old-diff-line-number old">9</td> + <td class="diff-line-num old_line old">9</td> <td class="diff-line-num new_line old"></td> <td class="line_content old"><span>Old </span></td> </tr> <tr class="line_holder new"> <td class="diff-line-num old_line new"></td> - <td class="diff-line-num new_line qa-new-diff-line-number new">9</td> + <td class="diff-line-num new_line new">9</td> <td class="line_content new"><span>New </span></td> </tr> <tr class="line_holder new"> <td class="diff-line-num old_line new"></td> - <td class="diff-line-num new_line qa-new-diff-line-number new">10</td> + <td class="diff-line-num new_line new">10</td> <td class="line_content new"><span> And newer </span></td> </tr> diff --git a/spec/features/markdown/gitlab_flavored_markdown_spec.rb b/spec/features/markdown/gitlab_flavored_markdown_spec.rb index 17fe2dab8f7..36b02b17924 100644 --- a/spec/features/markdown/gitlab_flavored_markdown_spec.rb +++ b/spec/features/markdown/gitlab_flavored_markdown_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe "GitLab Flavored Markdown" do +RSpec.describe "GitLab Flavored Markdown", feature_category: :team_planning do let(:user) { create(:user) } let(:project) { create(:project) } let(:issue) { create(:issue, project: project) } diff --git a/spec/features/markdown/json_table_spec.rb b/spec/features/markdown/json_table_spec.rb index 6b74dbac255..a9afbe1fc57 100644 --- a/spec/features/markdown/json_table_spec.rb +++ b/spec/features/markdown/json_table_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Rendering json:table code block in markdown', :js do +RSpec.describe 'Rendering json:table code block in markdown', :js, feature_category: :team_planning do let_it_be(:project) { create(:project, :public) } it 'creates table correctly' do diff --git a/spec/features/markdown/keyboard_shortcuts_spec.rb b/spec/features/markdown/keyboard_shortcuts_spec.rb index 82288af1f9f..cfb8e61689f 100644 --- a/spec/features/markdown/keyboard_shortcuts_spec.rb +++ b/spec/features/markdown/keyboard_shortcuts_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Markdown keyboard shortcuts', :js do +RSpec.describe 'Markdown keyboard shortcuts', :js, feature_category: :team_planning do let_it_be(:project) { create(:project, :repository) } let_it_be(:user) { create(:user) } diff --git a/spec/features/markdown/kroki_spec.rb b/spec/features/markdown/kroki_spec.rb index f02f5d44244..dca00c5f2fa 100644 --- a/spec/features/markdown/kroki_spec.rb +++ b/spec/features/markdown/kroki_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'kroki rendering', :js do +RSpec.describe 'kroki rendering', :js, feature_category: :team_planning do let_it_be(:project) { create(:project, :public) } before do diff --git a/spec/features/markdown/markdown_spec.rb b/spec/features/markdown/markdown_spec.rb index 08f9b8eda13..132a03877f8 100644 --- a/spec/features/markdown/markdown_spec.rb +++ b/spec/features/markdown/markdown_spec.rb @@ -26,7 +26,7 @@ require 'erb' # # See the MarkdownFeature class for setup details. -RSpec.describe 'GitLab Markdown', :aggregate_failures do +RSpec.describe 'GitLab Markdown', :aggregate_failures, feature_category: :team_planning do include Capybara::Node::Matchers include MarkupHelper include MarkdownMatchers @@ -290,6 +290,13 @@ RSpec.describe 'GitLab Markdown', :aggregate_failures do aggregate_failures 'KrokiFilter' do expect(doc).to parse_kroki end + + aggregate_failures 'AttributeFilter' do + img = doc.at_css('img[alt="Sized Image"]') + + expect(img.attr('width')).to eq('75%') + expect(img.attr('height')).to eq('100') + end end end diff --git a/spec/features/markdown/math_spec.rb b/spec/features/markdown/math_spec.rb index 1f219886818..0c77bd2a8ff 100644 --- a/spec/features/markdown/math_spec.rb +++ b/spec/features/markdown/math_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Math rendering', :js do +RSpec.describe 'Math rendering', :js, feature_category: :team_planning do let!(:project) { create(:project, :public) } it 'renders inline and display math correctly' do diff --git a/spec/features/markdown/metrics_spec.rb b/spec/features/markdown/metrics_spec.rb index 61dd41204f8..b5e42b16f87 100644 --- a/spec/features/markdown/metrics_spec.rb +++ b/spec/features/markdown/metrics_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Metrics rendering', :js, :kubeclient, :use_clean_rails_memory_store_caching, :sidekiq_inline do +RSpec.describe 'Metrics rendering', :js, :kubeclient, :use_clean_rails_memory_store_caching, :sidekiq_inline, feature_category: :team_planning do include PrometheusHelpers include KubernetesHelpers include GrafanaApiHelpers diff --git a/spec/features/markdown/observability_spec.rb b/spec/features/markdown/observability_spec.rb new file mode 100644 index 00000000000..0c7d8cc006b --- /dev/null +++ b/spec/features/markdown/observability_spec.rb @@ -0,0 +1,83 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Observability rendering', :js do + let_it_be(:group) { create(:group, :public) } + let_it_be(:project) { create(:project, :repository, group: group) } + let_it_be(:user) { create(:user) } + let_it_be(:observable_url) { "https://observe.gitlab.com/" } + + let_it_be(:expected) do + %(<iframe src="#{observable_url}?theme=light&kiosk" frameborder="0") + end + + before do + project.add_maintainer(user) + sign_in(user) + end + + context 'when embedding in an issue' do + let(:issue) do + create(:issue, project: project, description: observable_url) + end + + before do + visit project_issue_path(project, issue) + wait_for_requests + end + + it 'renders iframe in description' do + page.within('.description') do + expect(page.html).to include(expected) + end + end + + it 'renders iframe in comment' do + expect(page).not_to have_css('.note-text') + + page.within('.js-main-target-form') do + fill_in('note[note]', with: observable_url) + click_button('Comment') + end + + wait_for_requests + + page.within('.note-text') do + expect(page.html).to include(expected) + end + end + end + + context 'when embedding in an MR' do + let(:merge_request) do + create(:merge_request, source_project: project, target_project: project, description: observable_url) + end + + before do + visit merge_request_path(merge_request) + wait_for_requests + end + + it 'renders iframe in description' do + page.within('.description') do + expect(page.html).to include(expected) + end + end + + it 'renders iframe in comment' do + expect(page).not_to have_css('.note-text') + + page.within('.js-main-target-form') do + fill_in('note[note]', with: observable_url) + click_button('Comment') + end + + wait_for_requests + + page.within('.note-text') do + expect(page.html).to include(expected) + end + end + end +end diff --git a/spec/features/markdown/sandboxed_mermaid_spec.rb b/spec/features/markdown/sandboxed_mermaid_spec.rb index 2bf88d7882d..26b397a1fd5 100644 --- a/spec/features/markdown/sandboxed_mermaid_spec.rb +++ b/spec/features/markdown/sandboxed_mermaid_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Sandboxed Mermaid rendering', :js do +RSpec.describe 'Sandboxed Mermaid rendering', :js, feature_category: :team_planning do let_it_be(:project) { create(:project, :public, :repository) } let_it_be(:description) do <<~MERMAID |