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:
Diffstat (limited to 'spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb')
-rw-r--r--spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb56
1 files changed, 32 insertions, 24 deletions
diff --git a/spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb b/spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb
index c385def6762..8caa13c6297 100644
--- a/spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb
+++ b/spec/features/merge_request/user_sees_merge_request_file_tree_sidebar_spec.rb
@@ -15,48 +15,56 @@ RSpec.describe 'Merge request > User sees merge request file tree sidebar', :js,
sign_in(user)
visit diffs_project_merge_request_path(project, merge_request)
wait_for_requests
- scroll_into_view
end
it 'sees file tree sidebar' do
expect(page).to have_selector('.file-row[role=button]')
end
- # TODO: fix this test
- # For some reason the browser in CI doesn't update the file tree sidebar when review bar is shown
- # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118378#note_1403906356
- #
- # it 'has last entry visible with discussions enabled' do
- # add_diff_line_draft_comment('foo', find('.line_holder', match: :first))
- # scroll_into_view
- # scroll_to_end
- # button = find_all('.file-row[role=button]').last
- # expect(button.obscured?).to be_falsy
- # end
-
- shared_examples 'shows last visible file in sidebar' do
- it 'shows last file' do
- scroll_to_end
+ shared_examples 'last entry clickable' do
+ specify do
+ sidebar_scroller.execute_script('this.scrollBy(0,99999)')
button = find_all('.file-row[role=button]').last
title = button.find('[data-testid=file-row-name-container]')[:title]
+ expect(button.obscured?).to be_falsy
button.click
expect(page).to have_selector(".file-title-name[title*=\"#{title}\"]")
end
end
- it_behaves_like 'shows last visible file in sidebar'
+ it_behaves_like 'last entry clickable'
+
+ context 'when has started a review' do
+ before do
+ add_diff_line_draft_comment('foo', find('.line_holder', match: :first))
+ # wait for review bar to appear
+ find_by_testid('review_bar_component')
+ # wait for sidebar to adjust
+ sleep(1)
+ end
+
+ it_behaves_like 'last entry clickable'
+
+ context 'when scrolled into full view' do
+ before do
+ sidebar.execute_script("this.scrollIntoView({ block: 'end' })")
+ end
+
+ it_behaves_like 'last entry clickable'
+ end
+ end
context 'when viewing using file-by-file mode' do
let(:user) { create(:user, view_diffs_file_by_file: true) }
- it_behaves_like 'shows last visible file in sidebar'
- end
+ it_behaves_like 'last entry clickable'
- def scroll_into_view
- sidebar.execute_script("this.scrollIntoView({ block: 'end' })")
- end
+ context 'when navigating to the next file' do
+ before do
+ click_link 'Next'
+ end
- def scroll_to_end
- sidebar_scroller.execute_script('this.scrollBy(0,99999)')
+ it_behaves_like 'last entry clickable'
+ end
end
end