Skip to content
Snippets Groups Projects
Verified Commit 74b5bad5 authored by Mark Florian's avatar Mark Florian :two:
Browse files

Use new navigation in more specs

Part of #420121.
parent a742df73
No related branches found
No related tags found
No related merge requests found
Showing with 88 additions and 85 deletions
......@@ -6,8 +6,8 @@
include FilteredSearchHelpers
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user, :no_super_sidebar, name: 'administrator', username: 'root') }
let_it_be(:user_rock) { create(:user, :no_super_sidebar, name: 'The Rock', username: 'rock') }
let_it_be(:user) { create(:user, name: 'administrator', username: 'root') }
let_it_be(:user_rock) { create(:user, name: 'The Rock', username: 'rock') }
let_it_be(:milestone_nine) { create(:milestone, title: '9.0', project: project) }
let_it_be(:milestone_ten) { create(:milestone, title: '10.0', project: project) }
let_it_be(:label) { create(:label, project: project, title: 'abc') }
......@@ -41,7 +41,7 @@
end
it 'ends editing mode when document is clicked' do
find('.js-navbar').click
find('body').click(x: 0, y: 0)
expect_empty_search_term
expect_hidden_suggestions_list
......
......@@ -7,9 +7,9 @@
include ListboxHelpers
let_it_be(:project) { create(:project, :repository) }
let_it_be(:user) { create(:user, :no_super_sidebar) }
let_it_be(:user2) { create(:user, :no_super_sidebar) }
let_it_be(:guest) { create(:user, :no_super_sidebar) }
let_it_be(:user) { create(:user) }
let_it_be(:user2) { create(:user) }
let_it_be(:guest) { create(:user) }
let_it_be(:milestone) { create(:milestone, project: project) }
let_it_be(:label) { create(:label, project: project) }
let_it_be(:label2) { create(:label, project: project) }
......@@ -526,7 +526,9 @@
find('body').send_keys('e')
click_link 'Boards'
within_testid('super-sidebar') do
click_link project.name
end
expect(page).not_to have_content(expected_content)
end
......@@ -539,8 +541,10 @@
find('body').send_keys('e')
fill_in 'issue-description', with: content
click_link 'Boards' do
page.driver.browser.switch_to.alert.dismiss
within_testid('super-sidebar') do
click_link project.name do
page.driver.browser.switch_to.alert.dismiss
end
end
click_button 'Save changes'
......@@ -554,8 +558,10 @@
find('body').send_keys('e')
fill_in 'issue-description', with: content
click_link 'Boards' do
page.driver.browser.switch_to.alert.accept
within_testid('super-sidebar') do
click_link project.name do
page.driver.browser.switch_to.alert.dismiss
end
end
expect(page).not_to have_content(content)
......@@ -601,14 +607,4 @@
end
end
end
def before_for_selector(selector)
js = <<-JS.strip_heredoc
(function(selector) {
var el = document.querySelector(selector);
return window.getComputedStyle(el, '::before').getPropertyValue('content');
})("#{escape_javascript(selector)}")
JS
page.evaluate_script(js)
end
end
......@@ -5,7 +5,7 @@
RSpec.describe 'Merge request > User opens checkout branch modal', :js, feature_category: :code_review_workflow do
include ProjectForksHelper
let_it_be(:user) { create(:user, :no_super_sidebar) }
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) }
before do
......@@ -13,7 +13,7 @@
end
describe 'for fork' do
let(:author) { create(:user, :no_super_sidebar) }
let(:author) { create(:user) }
let(:source_project) { fork_project(project, author, repository: true) }
let(:merge_request) do
......@@ -31,8 +31,10 @@
it 'shows instructions' do
visit project_merge_request_path(project, merge_request)
click_button 'Code'
click_button 'Check out branch'
page.within 'main' do
click_button 'Code'
click_button 'Check out branch'
end
expect(page).to have_content(source_project.http_url_to_repo)
end
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Merge request > User sees check out branch modal', :js, feature_category: :code_review_workflow do
let_it_be(:user) { create(:user, :no_super_sidebar) }
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :public, :repository, creator: user) }
let_it_be(:merge_request) { create(:merge_request, source_project: project) }
let(:modal_window_title) { 'Check out, review, and resolve locally' }
......@@ -13,8 +13,10 @@
visit project_merge_request_path(project, merge_request)
wait_for_requests
click_button 'Code'
click_button('Check out branch')
page.within 'main' do
click_button 'Code'
click_button('Check out branch')
end
end
it 'shows the check out branch modal' do
......
......@@ -5,7 +5,7 @@
RSpec.describe 'Merge request > User selects branches for new MR', :js, feature_category: :code_review_workflow do
include ListboxHelpers
let_it_be(:user) { create(:user, :no_super_sidebar) }
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) }
def select_source_branch(branch_name)
......@@ -64,8 +64,10 @@ def select_source_branch(branch_name)
fill_in "merge_request_title", with: "Orphaned MR test"
click_button "Create merge request"
click_button 'Code'
click_button "Check out branch"
page.within 'main' do
click_button 'Code'
click_button "Check out branch"
end
expect(page).to have_content 'git checkout -b \'orphaned-branch\' \'origin/orphaned-branch\''
end
......
......@@ -13,7 +13,7 @@
context "issuable common quick actions" do
let!(:new_url_opts) { { merge_request: { source_branch: 'feature', target_branch: 'master' } } }
let(:maintainer) { create(:user, :no_super_sidebar) }
let(:maintainer) { create(:user) }
let(:project) { create(:project, :public, :repository) }
let!(:label_bug) { create(:label, project: project, title: 'bug') }
let!(:label_feature) { create(:label, project: project, title: 'feature') }
......@@ -26,8 +26,8 @@
end
describe 'merge-request-only commands' do
let(:user) { create(:user, :no_super_sidebar) }
let(:guest) { create(:user, :no_super_sidebar) }
let(:user) { create(:user) }
let(:guest) { create(:user) }
let(:project) { create(:project, :public, :repository) }
let(:merge_request) { create(:merge_request, source_project: project) }
let!(:milestone) { create(:milestone, project: project, title: 'ASAP') }
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'User views the Confluence page', feature_category: :integrations do
let_it_be(:user) { create(:user, :no_super_sidebar) }
let_it_be(:user) { create(:user) }
let(:project) { create(:project, :public) }
......@@ -11,12 +11,14 @@
sign_in(user)
end
it 'shows the page when the Confluence integration is enabled' do
it 'shows the page when the Confluence integration is enabled', :js do
service = create(:confluence_integration, project: project)
visit project_wikis_confluence_path(project)
expect(page).to have_css('.nav-sidebar li.active', text: 'Confluence', match: :first)
within_testid('super-sidebar') do
expect(page).to have_css('a[aria-current="page"]', text: 'Confluence')
end
element = page.find('.row.empty-state')
......
......@@ -3,10 +3,15 @@
require 'spec_helper'
RSpec.describe 'Edit Project Settings', feature_category: :groups_and_projects do
let(:member) { create(:user, :no_super_sidebar) }
let(:member) { create(:user) }
let!(:project) { create(:project, :public, :repository) }
let!(:issue) { create(:issue, project: project) }
let(:non_member) { create(:user, :no_super_sidebar) }
let(:non_member) { create(:user) }
# Sidebar nav links are only visible after hovering over or expanding the
# section that contains them (if it exists). Finding visible and hidden
# nav links allows us to avoid doing that.
let(:visibility_all) { { visible: :all } }
describe 'project features visibility selectors', :js do
before do
......@@ -14,7 +19,7 @@
sign_in(member)
end
tools = { builds: "pipelines", issues: "issues", wiki: "wiki", snippets: "snippets", merge_requests: "merge_requests", analytics: "analytics" }
tools = { builds: "pipelines", issues: "issues", wiki: "wiki", snippets: "snippets", merge_requests: "merge_requests", analytics: "project-cycle-analytics" }
tools.each do |tool_name, shortcut_name|
describe "feature #{tool_name}" do
......@@ -22,20 +27,16 @@
visit edit_project_path(project)
# disable by clicking toggle
toggle_feature_off("project[project_feature_attributes][#{tool_name}_access_level]")
page.within('.sharing-permissions') do
find('[data-testid="project-features-save-button"]').click
end
toggle_feature_off(tool_name)
click_save_changes
wait_for_requests
expect(page).not_to have_selector(".shortcuts-#{shortcut_name}")
expect(page).not_to have_selector(".shortcuts-#{shortcut_name}", **visibility_all)
# re-enable by clicking toggle again
toggle_feature_on("project[project_feature_attributes][#{tool_name}_access_level]")
page.within('.sharing-permissions') do
find('[data-testid="project-features-save-button"]').click
end
toggle_feature_on(tool_name)
click_save_changes
wait_for_requests
expect(page).to have_selector(".shortcuts-#{shortcut_name}")
expect(page).to have_selector(".shortcuts-#{shortcut_name}", **visibility_all)
end
end
end
......@@ -48,8 +49,8 @@
visit project_path(project)
expect(page).to have_selector('.shortcuts-issues')
expect(page).not_to have_selector('.shortcuts-labels')
expect(page).to have_selector('.shortcuts-issues', **visibility_all)
expect(page).not_to have_selector('.shortcuts-labels', **visibility_all)
end
end
......@@ -65,8 +66,8 @@
it 'hides issues tab' do
visit project_path(project)
expect(page).not_to have_selector('.shortcuts-issues')
expect(page).not_to have_selector('.shortcuts-labels')
expect(page).not_to have_selector('.shortcuts-issues', **visibility_all)
expect(page).not_to have_selector('.shortcuts-labels', **visibility_all)
end
end
......@@ -74,7 +75,7 @@
it "shows builds when enabled" do
visit project_pipelines_path(project)
expect(page).to have_selector(".shortcuts-builds")
expect(page).to have_selector(".shortcuts-builds", **visibility_all)
end
it "hides builds when disabled" do
......@@ -83,7 +84,7 @@
visit project_pipelines_path(project)
expect(page).not_to have_selector(".shortcuts-builds")
expect(page).not_to have_selector(".shortcuts-builds", **visibility_all)
end
end
end
......@@ -183,23 +184,19 @@
end
it "disables repository related features" do
toggle_feature_off('project[project_feature_attributes][repository_access_level]')
toggle_feature_off('repository')
page.within('.sharing-permissions') do
click_button "Save changes"
end
click_save_changes
expect(find(".sharing-permissions")).to have_selector(".gl-toggle.is-disabled", minimum: 3)
end
it "shows empty features project homepage" do
toggle_feature_off('project[project_feature_attributes][repository_access_level]')
toggle_feature_off('project[project_feature_attributes][issues_access_level]')
toggle_feature_off('project[project_feature_attributes][wiki_access_level]')
toggle_feature_off('repository')
toggle_feature_off('issues')
toggle_feature_off('wiki')
page.within('.sharing-permissions') do
click_button "Save changes"
end
click_save_changes
wait_for_requests
visit project_path(project)
......@@ -208,13 +205,11 @@
end
it "hides project activity tabs" do
toggle_feature_off('project[project_feature_attributes][repository_access_level]')
toggle_feature_off('project[project_feature_attributes][issues_access_level]')
toggle_feature_off('project[project_feature_attributes][wiki_access_level]')
toggle_feature_off('repository')
toggle_feature_off('issues')
toggle_feature_off('wiki')
page.within('.sharing-permissions') do
click_button "Save changes"
end
click_save_changes
wait_for_requests
visit activity_project_path(project)
......@@ -229,7 +224,7 @@
# Regression spec for https://gitlab.com/gitlab-org/gitlab-foss/issues/25272
it "hides comments activity tab only on disabled issues, merge requests and repository" do
toggle_feature_off('project[project_feature_attributes][issues_access_level]')
toggle_feature_off('issues')
save_changes_and_check_activity_tab do
expect(page).to have_content("Comments")
......@@ -237,7 +232,7 @@
visit edit_project_path(project)
toggle_feature_off('project[project_feature_attributes][merge_requests_access_level]')
toggle_feature_off('merge_requests')
save_changes_and_check_activity_tab do
expect(page).to have_content("Comments")
......@@ -245,7 +240,7 @@
visit edit_project_path(project)
toggle_feature_off('project[project_feature_attributes][repository_access_level]')
toggle_feature_off('repository')
save_changes_and_check_activity_tab do
expect(page).not_to have_content("Comments")
......@@ -255,9 +250,7 @@
end
def save_changes_and_check_activity_tab
page.within('.sharing-permissions') do
click_button "Save changes"
end
click_save_changes
wait_for_requests
visit activity_project_path(project)
......@@ -284,10 +277,16 @@ def save_changes_and_check_activity_tab
end
def toggle_feature_off(feature_name)
find(".project-feature-controls[data-for=\"#{feature_name}\"] .gl-toggle.is-checked").click
find(".project-feature-controls[data-for=\"project[project_feature_attributes][#{feature_name}_access_level]\"] .gl-toggle.is-checked").click
end
def toggle_feature_on(feature_name)
find(".project-feature-controls[data-for=\"#{feature_name}\"] .gl-toggle:not(.is-checked)").click
find(".project-feature-controls[data-for=\"project[project_feature_attributes][#{feature_name}_access_level]\"] .gl-toggle:not(.is-checked)").click
end
def click_save_changes
page.within('.sharing-permissions') do
click_button 'Save changes'
end
end
end
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Projects > Files > User searches for files', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user, :no_super_sidebar) }
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, namespace: user.namespace) }
before do
......@@ -18,7 +18,7 @@
visit project_path(project)
end
it 'does not show any result' do
it 'does not show any result', :js do
submit_search('coffee')
expect(page).to have_content("We couldn't find any")
......@@ -41,7 +41,7 @@
visit project_tree_path(project, project.default_branch)
end
it 'shows found files' do
it 'shows found files', :js do
expect(page).to have_selector('.tree-controls .shortcuts-find-file')
submit_search('coffee')
......
......@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Project Graph', :js, feature_category: :groups_and_projects do
let(:user) { create(:user, :no_super_sidebar) }
let(:user) { create(:user) }
let(:project) { create(:project, :repository, namespace: user.namespace) }
let(:branch_name) { 'master' }
......@@ -59,7 +59,7 @@
it 'HTML escapes branch name' do
expect(page.body).to include("Commit statistics for <strong>#{ERB::Util.html_escape(branch_name)}</strong>")
expect(page.find('.gl-new-dropdown-button-text')['innerHTML']).to include(ERB::Util.html_escape(branch_name))
expect(page).to have_button(branch_name)
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment