diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2018-08-02 19:17:20 +0300 |
---|---|---|
committer | Winnie Hellmann <winnie@gitlab.com> | 2018-08-07 15:58:53 +0300 |
commit | fed97a68b941659949e7b8b40977d54850bfbf8f (patch) | |
tree | 0236793039fa7e81207233bead04a4c4cff510df /spec/features | |
parent | 313b79d87bd65864307e6864080e12bdbab7c4ab (diff) |
Fix GPG status badge loading regressions
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/projects/blobs/blob_show_spec.rb | 29 | ||||
-rw-r--r-- | spec/features/projects/tree/tree_show_spec.rb | 64 | ||||
-rw-r--r-- | spec/features/projects_spec.rb | 43 | ||||
-rw-r--r-- | spec/features/signed_commits_spec.rb | 19 |
4 files changed, 136 insertions, 19 deletions
diff --git a/spec/features/projects/blobs/blob_show_spec.rb b/spec/features/projects/blobs/blob_show_spec.rb index 27589428896..1064f72c271 100644 --- a/spec/features/projects/blobs/blob_show_spec.rb +++ b/spec/features/projects/blobs/blob_show_spec.rb @@ -552,4 +552,33 @@ describe 'File blob', :js do end end end + + context 'for subgroups' do + let(:group) { create(:group) } + let(:subgroup) { create(:group, parent: group) } + let(:project) { create(:project, :public, :repository, group: subgroup) } + + it 'renders tree table without errors' do + visit_blob('README.md') + + expect(page).to have_selector('.file-content') + expect(page).not_to have_selector('.flash-alert') + end + + it 'displays a GPG badge' do + visit_blob('CONTRIBUTING.md', ref: '33f3729a45c02fc67d00adb1b8bca394b0e761d9') + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' + end + end + + context 'on signed merge commit' do + it 'displays a GPG badge' do + visit_blob('conflicting-file.md', ref: '6101e87e575de14b38b4e1ce180519a813671e10') + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' + end + end end diff --git a/spec/features/projects/tree/tree_show_spec.rb b/spec/features/projects/tree/tree_show_spec.rb index 9e15163fd72..8ae036cd29f 100644 --- a/spec/features/projects/tree/tree_show_spec.rb +++ b/spec/features/projects/tree/tree_show_spec.rb @@ -1,42 +1,86 @@ require 'spec_helper' -describe 'Projects tree' do +describe 'Projects tree', :js do let(:user) { create(:user) } let(:project) { create(:project, :repository) } before do project.add_maintainer(user) sign_in(user) + end + it 'renders tree table without errors' do visit project_tree_path(project, 'master') - end + wait_for_requests - it 'renders tree table' do expect(page).to have_selector('.tree-item') expect(page).not_to have_selector('.label-lfs', text: 'LFS') + expect(page).not_to have_selector('.flash-alert') end - context 'LFS' do - before do - visit project_tree_path(project, File.join('master', 'files/lfs')) + context 'for signed commit' do + it 'displays a GPG badge' do + visit project_tree_path(project, '33f3729a45c02fc67d00adb1b8bca394b0e761d9') + wait_for_requests + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' end + context 'on a directory that has not changed recently' do + it 'displays a GPG badge' do + tree_path = File.join('eee736adc74341c5d3e26cd0438bc697f26a7575', 'subdir') + visit project_tree_path(project, tree_path) + wait_for_requests + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' + end + end + end + + context 'LFS' do it 'renders LFS badge on blob item' do + visit project_tree_path(project, File.join('master', 'files/lfs')) + expect(page).to have_selector('.label-lfs', text: 'LFS') end end - context 'web IDE', :js do - before do + context 'web IDE' do + it 'opens folder in IDE' do visit project_tree_path(project, File.join('master', 'bar')) click_link 'Web IDE' + wait_for_requests find('.ide-file-list') + wait_for_requests + expect(page).to have_selector('.is-open', text: 'bar') end + end - it 'opens folder in IDE' do - expect(page).to have_selector('.is-open', text: 'bar') + context 'for subgroups' do + let(:group) { create(:group) } + let(:subgroup) { create(:group, parent: group) } + let(:project) { create(:project, :repository, group: subgroup) } + + it 'renders tree table without errors' do + visit project_tree_path(project, 'master') + wait_for_requests + + expect(page).to have_selector('.tree-item') + expect(page).not_to have_selector('.flash-alert') + end + + context 'for signed commit' do + it 'displays a GPG badge' do + visit project_tree_path(project, '33f3729a45c02fc67d00adb1b8bca394b0e761d9') + wait_for_requests + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' + end end end end diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb index 39b47d99040..56ed0c936a6 100644 --- a/spec/features/projects_spec.rb +++ b/spec/features/projects_spec.rb @@ -197,6 +197,49 @@ describe 'Project' do expect(page.status_code).to eq(200) end + + context 'for signed commit on default branch', :js do + before do + project.change_head('33f3729a45c02fc67d00adb1b8bca394b0e761d9') + end + + it 'displays a GPG badge' do + visit project_path(project) + wait_for_requests + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' + end + end + + context 'for subgroups', :js do + let(:group) { create(:group) } + let(:subgroup) { create(:group, parent: group) } + let(:project) { create(:project, :repository, group: subgroup) } + + it 'renders tree table without errors' do + wait_for_requests + + expect(page).to have_selector('.tree-item') + expect(page).not_to have_selector('.flash-alert') + end + + context 'for signed commit' do + before do + repository = project.repository + repository.write_ref("refs/heads/#{project.default_branch}", '33f3729a45c02fc67d00adb1b8bca394b0e761d9') + repository.expire_branches_cache + end + + it 'displays a GPG badge' do + visit project_path(project) + wait_for_requests + + expect(page).not_to have_selector '.gpg-status-box.js-loading-gpg-badge' + expect(page).to have_selector '.gpg-status-box.invalid' + end + end + end end describe 'activity view' do diff --git a/spec/features/signed_commits_spec.rb b/spec/features/signed_commits_spec.rb index 5003eb508c2..ef0e55a1468 100644 --- a/spec/features/signed_commits_spec.rb +++ b/spec/features/signed_commits_spec.rb @@ -1,6 +1,7 @@ require 'spec_helper' describe 'GPG signed commits', :js do + set(:ref) { :'2d1096e3a0ecf1d2baf6dee036cc80775d4940ba' } let(:project) { create(:project, :repository) } it 'changes from unverified to verified when the user changes his email to match the gpg key' do @@ -13,7 +14,7 @@ describe 'GPG signed commits', :js do sign_in(user) - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within '#commits-list' do expect(page).to have_content 'Unverified' @@ -26,7 +27,7 @@ describe 'GPG signed commits', :js do user.update!(email: GpgHelpers::User1.emails.first) end - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within '#commits-list' do expect(page).to have_content 'Unverified' @@ -40,7 +41,7 @@ describe 'GPG signed commits', :js do sign_in(user) - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within '#commits-list' do expect(page).to have_content 'Unverified' @@ -52,7 +53,7 @@ describe 'GPG signed commits', :js do create :gpg_key, key: GpgHelpers::User1.public_key, user: user end - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within '#commits-list' do expect(page).to have_content 'Unverified' @@ -92,7 +93,7 @@ describe 'GPG signed commits', :js do end it 'unverified signature' do - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within(find('.commit', text: 'signed commit by bette cartwright')) do click_on 'Unverified' @@ -107,7 +108,7 @@ describe 'GPG signed commits', :js do it 'unverified signature: user email does not match the committer email, but is the same user' do user_2_key - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within(find('.commit', text: 'signed and authored commit by bette cartwright, different email')) do click_on 'Unverified' @@ -124,7 +125,7 @@ describe 'GPG signed commits', :js do it 'unverified signature: user email does not match the committer email' do user_2_key - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within(find('.commit', text: 'signed commit by bette cartwright')) do click_on 'Unverified' @@ -141,7 +142,7 @@ describe 'GPG signed commits', :js do it 'verified and the gpg user has a gitlab profile' do user_1_key - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) within(find('.commit', text: 'signed and authored commit by nannie bernhard')) do click_on 'Verified' @@ -158,7 +159,7 @@ describe 'GPG signed commits', :js do it "verified and the gpg user's profile doesn't exist anymore" do user_1_key - visit project_commits_path(project, :'signed-commits') + visit project_commits_path(project, ref) # wait for the signature to get generated within(find('.commit', text: 'signed and authored commit by nannie bernhard')) do |