diff options
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/features/copy_as_gfm_spec.rb | 2 | ||||
| -rw-r--r-- | spec/features/expand_collapse_diffs_spec.rb | 28 | ||||
| -rw-r--r-- | spec/features/projects/files/find_file_keyboard_spec.rb | 4 | ||||
| -rw-r--r-- | spec/features/protected_branches/access_control_ce_spec.rb | 12 | ||||
| -rw-r--r-- | spec/features/snippets/user_snippets_spec.rb | 49 | ||||
| -rw-r--r-- | spec/javascripts/filtered_search/dropdown_user_spec.js.es6 | 4 | ||||
| -rw-r--r-- | spec/models/project_services/jira_service_spec.rb | 2 | ||||
| -rw-r--r-- | spec/rubocop/cop/gem_fetcher_spec.rb | 46 |
8 files changed, 126 insertions, 21 deletions
diff --git a/spec/features/copy_as_gfm_spec.rb b/spec/features/copy_as_gfm_spec.rb index f3a5b565122..fec86128d03 100644 --- a/spec/features/copy_as_gfm_spec.rb +++ b/spec/features/copy_as_gfm_spec.rb @@ -251,6 +251,8 @@ describe 'Copy as GFM', feature: true, js: true do 'SanitizationFilter', <<-GFM.strip_heredoc + <a name="named-anchor"></a> + <sub>sub</sub> <dl> diff --git a/spec/features/expand_collapse_diffs_spec.rb b/spec/features/expand_collapse_diffs_spec.rb index 8b3e2fa93a2..8c64b050e19 100644 --- a/spec/features/expand_collapse_diffs_spec.rb +++ b/spec/features/expand_collapse_diffs_spec.rb @@ -72,8 +72,8 @@ feature 'Expand and collapse diffs', js: true, feature: true do it 'collapses large diffs for renamed files by default' do expect(large_diff_renamed).not_to have_selector('.code') expect(large_diff_renamed).to have_selector('.nothing-here-block') - expect(large_diff_renamed).to have_selector('.file-title .deletion') - expect(large_diff_renamed).to have_selector('.file-title .addition') + expect(large_diff_renamed).to have_selector('.js-file-title .deletion') + expect(large_diff_renamed).to have_selector('.js-file-title .addition') end it 'shows non-renderable diffs as such immediately, regardless of their size' do @@ -115,9 +115,9 @@ feature 'Expand and collapse diffs', js: true, feature: true do context 'expanding a large diff' do before do # Wait for diffs - find('.file-title', match: :first) + find('.js-file-title', match: :first) # Click `large_diff.md` title - all('.file-title')[1].click + all('.diff-toggle-caret')[1].click wait_for_ajax end @@ -159,9 +159,9 @@ feature 'Expand and collapse diffs', js: true, feature: true do context 'expanding the diff' do before do # Wait for diffs - find('.file-title', match: :first) + find('.js-file-title', match: :first) # Click `large_diff.md` title - all('.file-title')[1].click + all('.diff-toggle-caret')[1].click wait_for_ajax end @@ -181,9 +181,9 @@ feature 'Expand and collapse diffs', js: true, feature: true do context 'collapsing an expanded diff' do before do # Wait for diffs - find('.file-title', match: :first) + find('.js-file-title', match: :first) # Click `small_diff.md` title - all('.file-title')[3].click + all('.diff-toggle-caret')[3].click end it 'hides the diff content' do @@ -194,9 +194,9 @@ feature 'Expand and collapse diffs', js: true, feature: true do context 're-expanding the same diff' do before do # Wait for diffs - find('.file-title', match: :first) + find('.js-file-title', match: :first) # Click `small_diff.md` title - all('.file-title')[3].click + all('.diff-toggle-caret')[3].click end it 'shows the diff content' do @@ -290,9 +290,9 @@ feature 'Expand and collapse diffs', js: true, feature: true do context 'collapsing an expanded diff' do before do # Wait for diffs - find('.file-title', match: :first) + find('.js-file-title', match: :first) # Click `small_diff.md` title - all('.file-title')[3].click + all('.diff-toggle-caret')[3].click end it 'hides the diff content' do @@ -303,9 +303,9 @@ feature 'Expand and collapse diffs', js: true, feature: true do context 're-expanding the same diff' do before do # Wait for diffs - find('.file-title', match: :first) + find('.js-file-title', match: :first) # Click `small_diff.md` title - all('.file-title')[3].click + all('.diff-toggle-caret')[3].click end it 'shows the diff content' do diff --git a/spec/features/projects/files/find_file_keyboard_spec.rb b/spec/features/projects/files/find_file_keyboard_spec.rb index fc88fd74af8..582349d8d5b 100644 --- a/spec/features/projects/files/find_file_keyboard_spec.rb +++ b/spec/features/projects/files/find_file_keyboard_spec.rb @@ -22,7 +22,7 @@ feature 'Find file keyboard shortcuts', feature: true, js: true do expect(page).to have_selector('.blob-content-holder') - page.within('.file-title') do + page.within('.js-file-title') do expect(page).to have_content('CHANGELOG') end end @@ -35,7 +35,7 @@ feature 'Find file keyboard shortcuts', feature: true, js: true do expect(page).to have_selector('.blob-content-holder') - page.within('.file-title') do + page.within('.js-file-title') do expect(page).to have_content('application.js') end end diff --git a/spec/features/protected_branches/access_control_ce_spec.rb b/spec/features/protected_branches/access_control_ce_spec.rb index 395c61a4743..e4aca25a339 100644 --- a/spec/features/protected_branches/access_control_ce_spec.rb +++ b/spec/features/protected_branches/access_control_ce_spec.rb @@ -26,7 +26,11 @@ RSpec.shared_examples "protected branches > access control > CE" do within(".protected-branches-list") do find(".js-allowed-to-push").click - within('.js-allowed-to-push-container') { click_on access_type_name } + + within('.js-allowed-to-push-container') do + expect(first("li")).to have_content("Roles") + click_on access_type_name + end end wait_for_ajax @@ -61,7 +65,11 @@ RSpec.shared_examples "protected branches > access control > CE" do within(".protected-branches-list") do find(".js-allowed-to-merge").click - within('.js-allowed-to-merge-container') { click_on access_type_name } + + within('.js-allowed-to-merge-container') do + expect(first("li")).to have_content("Roles") + click_on access_type_name + end end wait_for_ajax diff --git a/spec/features/snippets/user_snippets_spec.rb b/spec/features/snippets/user_snippets_spec.rb new file mode 100644 index 00000000000..191c2fb9a22 --- /dev/null +++ b/spec/features/snippets/user_snippets_spec.rb @@ -0,0 +1,49 @@ +require 'rails_helper' + +feature 'User Snippets', feature: true do + let(:author) { create(:user) } + let!(:public_snippet) { create(:personal_snippet, :public, author: author, title: "This is a public snippet") } + let!(:internal_snippet) { create(:personal_snippet, :internal, author: author, title: "This is an internal snippet") } + let!(:private_snippet) { create(:personal_snippet, :private, author: author, title: "This is a private snippet") } + + background do + login_as author + visit dashboard_snippets_path + end + + scenario 'View all of my snippets' do + expect(page).to have_content(public_snippet.title) + expect(page).to have_content(internal_snippet.title) + expect(page).to have_content(private_snippet.title) + end + + scenario 'View my public snippets' do + page.within('.snippet-scope-menu') do + click_link "Public" + end + + expect(page).to have_content(public_snippet.title) + expect(page).not_to have_content(internal_snippet.title) + expect(page).not_to have_content(private_snippet.title) + end + + scenario 'View my internal snippets' do + page.within('.snippet-scope-menu') do + click_link "Internal" + end + + expect(page).not_to have_content(public_snippet.title) + expect(page).to have_content(internal_snippet.title) + expect(page).not_to have_content(private_snippet.title) + end + + scenario 'View my private snippets' do + page.within('.snippet-scope-menu') do + click_link "Private" + end + + expect(page).not_to have_content(public_snippet.title) + expect(page).not_to have_content(internal_snippet.title) + expect(page).to have_content(private_snippet.title) + end +end diff --git a/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 b/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 index f4b0d60db34..fa9d03c8a9a 100644 --- a/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 +++ b/spec/javascripts/filtered_search/dropdown_user_spec.js.es6 @@ -9,7 +9,7 @@ require('~/filtered_search/dropdown_user'); let dropdownUser; beforeEach(() => { - spyOn(gl.FilteredSearchDropdown.prototype, 'constructor').and.callFake(() => {}); + spyOn(gl.DropdownUser.prototype, 'bindEvents').and.callFake(() => {}); spyOn(gl.DropdownUser.prototype, 'getProjectId').and.callFake(() => {}); spyOn(gl.DropdownUtils, 'getSearchInput').and.callFake(() => {}); @@ -39,7 +39,7 @@ require('~/filtered_search/dropdown_user'); describe('config droplabAjaxFilter\'s endpoint', () => { beforeEach(() => { - spyOn(gl.FilteredSearchDropdown.prototype, 'constructor').and.callFake(() => {}); + spyOn(gl.DropdownUser.prototype, 'bindEvents').and.callFake(() => {}); spyOn(gl.DropdownUser.prototype, 'getProjectId').and.callFake(() => {}); }); diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index 2f6b159d76e..4bca0229e7a 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -135,7 +135,7 @@ describe JiraService, models: true do url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/commit/#{merge_request.diff_head_sha}", title: "GitLab: Solved by commit #{merge_request.diff_head_sha}.", icon: { title: "GitLab", url16x16: "https://gitlab.com/favicon.ico" }, - status: { resolved: true, icon: { url16x16: "http://www.openwebgraphics.com/resources/data/1768/16x16_apply.png", title: "Closed" } } + status: { resolved: true } } ) ).once diff --git a/spec/rubocop/cop/gem_fetcher_spec.rb b/spec/rubocop/cop/gem_fetcher_spec.rb new file mode 100644 index 00000000000..c07f6a831dc --- /dev/null +++ b/spec/rubocop/cop/gem_fetcher_spec.rb @@ -0,0 +1,46 @@ +require 'spec_helper' + +require 'rubocop' +require 'rubocop/rspec/support' + +require_relative '../../../rubocop/cop/gem_fetcher' + +describe RuboCop::Cop::GemFetcher do + include CopHelper + + subject(:cop) { described_class.new } + + context 'in Gemfile' do + before do + allow(cop).to receive(:gemfile?).and_return(true) + end + + it 'registers an offense when a gem uses `git`' do + inspect_source(cop, 'gem "foo", git: "https://gitlab.com/foo/bar.git"') + + aggregate_failures do + expect(cop.offenses.size).to eq(1) + expect(cop.offenses.map(&:line)).to eq([1]) + expect(cop.highlights).to eq(['git: "https://gitlab.com/foo/bar.git"']) + end + end + + it 'registers an offense when a gem uses `github`' do + inspect_source(cop, 'gem "foo", github: "foo/bar.git"') + + aggregate_failures do + expect(cop.offenses.size).to eq(1) + expect(cop.offenses.map(&:line)).to eq([1]) + expect(cop.highlights).to eq(['github: "foo/bar.git"']) + end + end + end + + context 'outside of Gemfile' do + it 'registers no offense' do + inspect_source(cop, 'gem "foo", git: "https://gitlab.com/foo/bar.git"') + + expect(cop.offenses.size).to eq(0) + end + end +end |
