diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-15 18:10:08 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-15 18:10:08 +0300 |
commit | 06c127aa72cff78235426341081837cff0b6f78b (patch) | |
tree | 614c9d9e029adcac31f290d4f953fe8b02aaf0f1 /spec/features | |
parent | 33212c8ff1f99cdb896e8fc6f6450882287e0de5 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/merge_request/user_expands_diff_spec.rb | 4 | ||||
-rw-r--r-- | spec/features/projects/releases/user_views_releases_spec.rb | 156 |
2 files changed, 87 insertions, 73 deletions
diff --git a/spec/features/merge_request/user_expands_diff_spec.rb b/spec/features/merge_request/user_expands_diff_spec.rb index fc17ef011c2..b0cfa8d0d54 100644 --- a/spec/features/merge_request/user_expands_diff_spec.rb +++ b/spec/features/merge_request/user_expands_diff_spec.rb @@ -17,11 +17,11 @@ RSpec.describe 'User expands diff', :js do it 'allows user to expand diff' do page.within find('[id="19763941ab80e8c09871c0a425f0560d9053bcb3"]') do - click_link 'Click to expand it.' + find('[data-testid="expandButton"]').click wait_for_requests - expect(page).not_to have_content('Click to expand it.') + expect(page).not_to have_content('Expand File') expect(page).to have_selector('.code') end end diff --git a/spec/features/projects/releases/user_views_releases_spec.rb b/spec/features/projects/releases/user_views_releases_spec.rb index 962d5551631..993d3371904 100644 --- a/spec/features/projects/releases/user_views_releases_spec.rb +++ b/spec/features/projects/releases/user_views_releases_spec.rb @@ -13,37 +13,25 @@ RSpec.describe 'User views releases', :js do project.add_guest(guest) end - context('when the user is a maintainer') do - before do - gitlab_sign_in(maintainer) - end - - it 'sees the release' do - visit project_releases_path(project) - - expect(page).to have_content(release.name) - expect(page).to have_content(release.tag) - expect(page).not_to have_content('Upcoming Release') - end - - shared_examples 'asset link tests' do - context 'when there is a link as an asset' do - let!(:release_link) { create(:release_link, release: release, url: url ) } - let(:url) { "#{project.web_url}/-/jobs/1/artifacts/download" } - let(:direct_asset_link) { Gitlab::Routing.url_helpers.project_release_url(project, release) << release_link.filepath } + shared_examples 'releases page' do + context('when the user is a maintainer') do + before do + gitlab_sign_in(maintainer) + end - it 'sees the link' do - visit project_releases_path(project) + it 'sees the release' do + visit project_releases_path(project) - page.within('.js-assets-list') do - expect(page).to have_link release_link.name, href: direct_asset_link - expect(page).not_to have_css('[data-testid="external-link-indicator"]') - end - end + expect(page).to have_content(release.name) + expect(page).to have_content(release.tag) + expect(page).not_to have_content('Upcoming Release') + end - context 'when there is a link redirect' do - let!(:release_link) { create(:release_link, release: release, name: 'linux-amd64 binaries', filepath: '/binaries/linux-amd64', url: url) } + shared_examples 'asset link tests' do + context 'when there is a link as an asset' do + let!(:release_link) { create(:release_link, release: release, url: url ) } let(:url) { "#{project.web_url}/-/jobs/1/artifacts/download" } + let(:direct_asset_link) { Gitlab::Routing.url_helpers.project_release_url(project, release) << release_link.filepath } it 'sees the link' do visit project_releases_path(project) @@ -53,77 +41,103 @@ RSpec.describe 'User views releases', :js do expect(page).not_to have_css('[data-testid="external-link-indicator"]') end end - end - context 'when url points to external resource' do - let(:url) { 'http://google.com/download' } + context 'when there is a link redirect' do + let!(:release_link) { create(:release_link, release: release, name: 'linux-amd64 binaries', filepath: '/binaries/linux-amd64', url: url) } + let(:url) { "#{project.web_url}/-/jobs/1/artifacts/download" } - it 'sees that the link is external resource' do - visit project_releases_path(project) + it 'sees the link' do + visit project_releases_path(project) - page.within('.js-assets-list') do - expect(page).to have_css('[data-testid="external-link-indicator"]') + page.within('.js-assets-list') do + expect(page).to have_link release_link.name, href: direct_asset_link + expect(page).not_to have_css('[data-testid="external-link-indicator"]') + end + end + end + + context 'when url points to external resource' do + let(:url) { 'http://google.com/download' } + + it 'sees that the link is external resource' do + visit project_releases_path(project) + + page.within('.js-assets-list') do + expect(page).to have_css('[data-testid="external-link-indicator"]') + end end end end end - end - context 'when the release_asset_link_type feature flag is enabled' do - before do - stub_feature_flags(release_asset_link_type: true) + context 'when the release_asset_link_type feature flag is enabled' do + before do + stub_feature_flags(release_asset_link_type: true) + end + + it_behaves_like 'asset link tests' end - it_behaves_like 'asset link tests' - end + context 'when the release_asset_link_type feature flag is disabled' do + before do + stub_feature_flags(release_asset_link_type: false) + end - context 'when the release_asset_link_type feature flag is disabled' do - before do - stub_feature_flags(release_asset_link_type: false) + it_behaves_like 'asset link tests' end - it_behaves_like 'asset link tests' - end + context 'with an upcoming release' do + let(:tomorrow) { Time.zone.now + 1.day } + let!(:release) { create(:release, project: project, released_at: tomorrow ) } - context 'with an upcoming release' do - let(:tomorrow) { Time.zone.now + 1.day } - let!(:release) { create(:release, project: project, released_at: tomorrow ) } + it 'sees the upcoming tag' do + visit project_releases_path(project) - it 'sees the upcoming tag' do - visit project_releases_path(project) + expect(page).to have_content('Upcoming Release') + end + end + + context 'with a tag containing a slash' do + it 'sees the release' do + release = create :release, project: project, tag: 'debian/2.4.0-1' + visit project_releases_path(project) - expect(page).to have_content('Upcoming Release') + expect(page).to have_content(release.name) + expect(page).to have_content(release.tag) + end end end - context 'with a tag containing a slash' do - it 'sees the release' do - release = create :release, project: project, tag: 'debian/2.4.0-1' + context('when the user is a guest') do + before do + gitlab_sign_in(guest) + end + + it 'renders release info except for Git-related data' do visit project_releases_path(project) - expect(page).to have_content(release.name) - expect(page).to have_content(release.tag) + within('.release-block') do + expect(page).to have_content(release.description) + + # The following properties (sometimes) include Git info, + # so they are not rendered for Guest users + expect(page).not_to have_content(release.name) + expect(page).not_to have_content(release.tag) + expect(page).not_to have_content(release.commit.short_id) + end end end end - context('when the user is a guest') do + context 'when the graphql_releases_page feature flag is enabled' do + it_behaves_like 'releases page' + end + + context 'when the graphql_releases_page feature flag is disabled' do before do - gitlab_sign_in(guest) + stub_feature_flags(graphql_releases_page: false) end - it 'renders release info except for Git-related data' do - visit project_releases_path(project) - - within('.release-block') do - expect(page).to have_content(release.description) - - # The following properties (sometimes) include Git info, - # so they are not rendered for Guest users - expect(page).not_to have_content(release.name) - expect(page).not_to have_content(release.tag) - expect(page).not_to have_content(release.commit.short_id) - end - end + it_behaves_like 'releases page' end end |