Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-14 18:09:08 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-14 18:09:08 +0300
commitb3a736ed88a1db0391cd9881e70b987bab7d89d1 (patch)
treea91ca3a06abd4c3412775ac3c49b11e3151df2be /spec/features/projects/show/user_sees_collaboration_links_spec.rb
parent5366964a10484c2783a646b35a6da9eece01b242 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features/projects/show/user_sees_collaboration_links_spec.rb')
-rw-r--r--spec/features/projects/show/user_sees_collaboration_links_spec.rb106
1 files changed, 68 insertions, 38 deletions
diff --git a/spec/features/projects/show/user_sees_collaboration_links_spec.rb b/spec/features/projects/show/user_sees_collaboration_links_spec.rb
index ff133b58f89..63fcec4f9b3 100644
--- a/spec/features/projects/show/user_sees_collaboration_links_spec.rb
+++ b/spec/features/projects/show/user_sees_collaboration_links_spec.rb
@@ -3,66 +3,96 @@
require 'spec_helper'
describe 'Projects > Show > Collaboration links', :js do
- let(:project) { create(:project, :repository) }
+ using RSpec::Parameterized::TableSyntax
+
+ let(:project) { create(:project, :repository, :public) }
let(:user) { create(:user) }
before do
- project.add_developer(user)
sign_in(user)
end
- it 'shows all the expected links' do
- visit project_path(project)
+ context 'with developer user' do
+ before do
+ project.add_developer(user)
+ end
- # The navigation bar
- page.within('.header-new') do
- find('.qa-new-menu-toggle').click
+ it 'shows all the expected links' do
+ visit project_path(project)
- aggregate_failures 'dropdown links in the navigation bar' do
- expect(page).to have_link('New issue')
- expect(page).to have_link('New merge request')
- expect(page).to have_link('New snippet', href: new_project_snippet_path(project))
- end
+ # The navigation bar
+ page.within('.header-new') do
+ find('.qa-new-menu-toggle').click
- find('.qa-new-menu-toggle').click
- end
+ aggregate_failures 'dropdown links in the navigation bar' do
+ expect(page).to have_link('New issue')
+ expect(page).to have_link('New merge request')
+ expect(page).to have_link('New snippet', href: new_project_snippet_path(project))
+ end
- # The dropdown above the tree
- page.within('.repo-breadcrumb') do
- find('.qa-add-to-tree').click
+ find('.qa-new-menu-toggle').click
+ end
- aggregate_failures 'dropdown links above the repo tree' do
- expect(page).to have_link('New file')
- expect(page).to have_link('Upload file')
- expect(page).to have_link('New directory')
- expect(page).to have_link('New branch')
- expect(page).to have_link('New tag')
+ # The dropdown above the tree
+ page.within('.repo-breadcrumb') do
+ find('.qa-add-to-tree').click
+
+ aggregate_failures 'dropdown links above the repo tree' do
+ expect(page).to have_link('New file')
+ expect(page).to have_link('Upload file')
+ expect(page).to have_link('New directory')
+ expect(page).to have_link('New branch')
+ expect(page).to have_link('New tag')
+ end
end
+
+ # The Web IDE
+ expect(page).to have_link('Web IDE')
end
- # The Web IDE
- expect(page).to have_link('Web IDE')
- end
+ it 'hides the links when the project is archived' do
+ project.update!(archived: true)
- it 'hides the links when the project is archived' do
- project.update!(archived: true)
+ visit project_path(project)
- visit project_path(project)
+ page.within('.header-new') do
+ find('.qa-new-menu-toggle').click
- page.within('.header-new') do
- find('.qa-new-menu-toggle').click
+ aggregate_failures 'dropdown links' do
+ expect(page).not_to have_link('New issue')
+ expect(page).not_to have_link('New merge request')
+ expect(page).not_to have_link('New snippet', href: new_project_snippet_path(project))
+ end
- aggregate_failures 'dropdown links' do
- expect(page).not_to have_link('New issue')
- expect(page).not_to have_link('New merge request')
- expect(page).not_to have_link('New snippet', href: new_project_snippet_path(project))
+ find('.qa-new-menu-toggle').click
end
- find('.qa-new-menu-toggle').click
+ expect(page).not_to have_selector('.qa-add-to-tree')
+
+ expect(page).not_to have_link('Web IDE')
end
+ end
- expect(page).not_to have_selector('.qa-add-to-tree')
+ context "Web IDE link" do
+ where(:merge_requests_access_level, :user_level, :expect_ide_link) do
+ ::ProjectFeature::DISABLED | :guest | false
+ ::ProjectFeature::DISABLED | :developer | true
+ ::ProjectFeature::PRIVATE | :guest | false
+ ::ProjectFeature::PRIVATE | :developer | true
+ ::ProjectFeature::ENABLED | :guest | true
+ ::ProjectFeature::ENABLED | :developer | true
+ end
- expect(page).not_to have_link('Web IDE')
+ with_them do
+ before do
+ project.project_feature.update!({ merge_requests_access_level: merge_requests_access_level })
+ project.add_user(user, user_level)
+ visit project_path(project)
+ end
+
+ it "updates Web IDE link" do
+ expect(page.has_link?('Web IDE')).to be(expect_ide_link)
+ end
+ end
end
end