debian-mirror-gitlab/spec/features/projects/tree/tree_show_spec.rb

130 lines
4 KiB
Ruby
Raw Normal View History

2019-10-12 21:52:04 +05:30
# frozen_string_literal: true
2018-03-17 18:26:18 +05:30
require 'spec_helper'
2020-06-23 00:09:42 +05:30
RSpec.describe 'Projects tree', :js do
2018-03-17 18:26:18 +05:30
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
2020-03-13 15:44:24 +05:30
let(:gravatar_enabled) { true }
2018-03-17 18:26:18 +05:30
2018-11-20 20:47:30 +05:30
# This commit has a known state on the master branch of gitlab-test
let(:test_sha) { '7975be0116940bf2ad4321f79d02a55c5f7779aa' }
2018-03-17 18:26:18 +05:30
before do
2020-03-13 15:44:24 +05:30
stub_application_setting(gravatar_enabled: gravatar_enabled)
2018-11-18 11:00:15 +05:30
project.add_maintainer(user)
2018-03-17 18:26:18 +05:30
sign_in(user)
2018-11-18 11:00:15 +05:30
end
2018-03-17 18:26:18 +05:30
2018-11-18 11:00:15 +05:30
it 'renders tree table without errors' do
2018-11-20 20:47:30 +05:30
visit project_tree_path(project, test_sha)
wait_for_requests
expect(page).to have_selector('.tree-item')
expect(page).to have_content('add tests for .gitattributes custom highlighting')
expect(page).not_to have_selector('.flash-alert')
2020-06-23 00:09:42 +05:30
expect(page).not_to have_selector('[data-qa-selector="label-lfs"]', text: 'LFS')
2018-11-20 20:47:30 +05:30
end
it 'renders tree table for a subtree without errors' do
visit project_tree_path(project, File.join(test_sha, 'files'))
2018-11-18 11:00:15 +05:30
wait_for_requests
2018-03-17 18:26:18 +05:30
expect(page).to have_selector('.tree-item')
2018-11-20 20:47:30 +05:30
expect(page).to have_content('add spaces in whitespace file')
2020-06-23 00:09:42 +05:30
expect(page).not_to have_selector('[data-qa-selector="label-lfs"]', text: 'LFS')
2018-11-18 11:00:15 +05:30
expect(page).not_to have_selector('.flash-alert')
2018-03-17 18:26:18 +05:30
end
2020-03-13 15:44:24 +05:30
it 'renders tree table with non-ASCII filenames without errors' do
visit project_tree_path(project, File.join(test_sha, 'encoding'))
wait_for_requests
expect(page).to have_selector('.tree-item')
expect(page).to have_content('Files, encoding and much more')
expect(page).to have_content('テスト.txt')
expect(page).not_to have_selector('.flash-alert')
end
context 'gravatar disabled' do
let(:gravatar_enabled) { false }
it 'renders last commit' do
visit project_tree_path(project, test_sha)
wait_for_requests
page.within('.project-last-commit') do
expect(page).to have_selector('.user-avatar-link')
expect(page).to have_content('Merge branch')
end
end
end
2018-11-18 11:00:15 +05:30
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'
2018-03-17 18:26:18 +05:30
end
2018-11-18 11:00:15 +05:30
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
2018-03-17 18:26:18 +05:30
it 'renders LFS badge on blob item' do
2018-11-18 11:00:15 +05:30
visit project_tree_path(project, File.join('master', 'files/lfs'))
2020-06-23 00:09:42 +05:30
expect(page).to have_selector('[data-qa-selector="label-lfs"]', text: 'LFS')
2018-03-17 18:26:18 +05:30
end
end
2018-05-09 12:01:36 +05:30
2018-11-18 11:00:15 +05:30
context 'web IDE' do
it 'opens folder in IDE' do
2018-05-09 12:01:36 +05:30
visit project_tree_path(project, File.join('master', 'bar'))
click_link 'Web IDE'
2018-11-18 11:00:15 +05:30
wait_for_requests
2018-05-09 12:01:36 +05:30
find('.ide-file-list')
2018-11-18 11:00:15 +05:30
wait_for_requests
expect(page).to have_selector('.is-open', text: 'bar')
2018-05-09 12:01:36 +05:30
end
2018-11-18 11:00:15 +05:30
end
2018-05-09 12:01:36 +05:30
2018-11-18 11:00:15 +05:30
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
2018-05-09 12:01:36 +05:30
end
end
2018-03-17 18:26:18 +05:30
end