diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-12 03:08:44 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-12 03:08:44 +0300 |
commit | 0f5dcf55e543e2cb30697d4c8ea8ce509cf25375 (patch) | |
tree | 213f71f90ed2f6d356a90b0d09e8dbf5d14e816e /spec/features | |
parent | a66475b6beb46d77b9ff3fe30453be2d52779048 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features')
11 files changed, 123 insertions, 0 deletions
diff --git a/spec/features/admin/admin_groups_spec.rb b/spec/features/admin/admin_groups_spec.rb index 9cd335ffb8c..f5c5a73c042 100644 --- a/spec/features/admin/admin_groups_spec.rb +++ b/spec/features/admin/admin_groups_spec.rb @@ -11,6 +11,8 @@ RSpec.describe 'Admin Groups' do let!(:current_user) { create(:admin) } before do + stub_feature_flags(vue_group_members_list: false) + sign_in(current_user) stub_application_setting(default_group_visibility: internal) end diff --git a/spec/features/groups/members/filter_members_spec.rb b/spec/features/groups/members/filter_members_spec.rb index 643c8407578..d667690af29 100644 --- a/spec/features/groups/members/filter_members_spec.rb +++ b/spec/features/groups/members/filter_members_spec.rb @@ -10,6 +10,8 @@ RSpec.describe 'Groups > Members > Filter members' do let(:nested_group) { create(:group, parent: group) } before do + stub_feature_flags(vue_group_members_list: false) + group.add_owner(user) group.add_maintainer(user_with_2fa) nested_group.add_maintainer(nested_group_user) diff --git a/spec/features/groups/members/leave_group_spec.rb b/spec/features/groups/members/leave_group_spec.rb index fecc90f20c7..9eb5cc15c5e 100644 --- a/spec/features/groups/members/leave_group_spec.rb +++ b/spec/features/groups/members/leave_group_spec.rb @@ -8,6 +8,8 @@ RSpec.describe 'Groups > Members > Leave group' do let(:group) { create(:group) } before do + stub_feature_flags(vue_group_members_list: false) + gitlab_sign_in(user) end diff --git a/spec/features/groups/members/list_members_spec.rb b/spec/features/groups/members/list_members_spec.rb index 415c6927320..bcec2b50a24 100644 --- a/spec/features/groups/members/list_members_spec.rb +++ b/spec/features/groups/members/list_members_spec.rb @@ -12,6 +12,8 @@ RSpec.describe 'Groups > Members > List members' do let(:nested_group) { create(:group, parent: group) } before do + stub_feature_flags(vue_group_members_list: false) + sign_in(user1) end diff --git a/spec/features/groups/members/manage_groups_spec.rb b/spec/features/groups/members/manage_groups_spec.rb index faf455e4ed9..e3bbbd4d73b 100644 --- a/spec/features/groups/members/manage_groups_spec.rb +++ b/spec/features/groups/members/manage_groups_spec.rb @@ -11,6 +11,8 @@ RSpec.describe 'Groups > Members > Manage groups', :js do let(:shared_group) { create(:group) } before do + stub_feature_flags(vue_group_members_list: false) + shared_group.add_owner(user) sign_in(user) end diff --git a/spec/features/groups/members/manage_members_spec.rb b/spec/features/groups/members/manage_members_spec.rb index 0267bea2f53..aedb7c170f8 100644 --- a/spec/features/groups/members/manage_members_spec.rb +++ b/spec/features/groups/members/manage_members_spec.rb @@ -11,6 +11,8 @@ RSpec.describe 'Groups > Members > Manage members' do let(:group) { create(:group) } before do + stub_feature_flags(vue_group_members_list: false) + sign_in(user1) end diff --git a/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb index f80925186ed..d94cc85f411 100644 --- a/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb +++ b/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb @@ -11,6 +11,8 @@ RSpec.describe 'Groups > Members > Owner adds member with expiration date', :js let(:group) { create(:group) } before do + stub_feature_flags(vue_group_members_list: false) + group.add_owner(user1) sign_in(user1) end diff --git a/spec/features/groups/members/master_manages_access_requests_spec.rb b/spec/features/groups/members/master_manages_access_requests_spec.rb index 71c9b280ebe..44fd7380b79 100644 --- a/spec/features/groups/members/master_manages_access_requests_spec.rb +++ b/spec/features/groups/members/master_manages_access_requests_spec.rb @@ -3,6 +3,10 @@ require 'spec_helper' RSpec.describe 'Groups > Members > Maintainer manages access requests' do + before do + stub_feature_flags(vue_group_members_list: false) + end + it_behaves_like 'Maintainer manages access requests' do let(:has_tabs) { true } let(:entity) { create(:group, :public) } diff --git a/spec/features/groups/members/search_members_spec.rb b/spec/features/groups/members/search_members_spec.rb index ad4f5c0b579..a95b59cece1 100644 --- a/spec/features/groups/members/search_members_spec.rb +++ b/spec/features/groups/members/search_members_spec.rb @@ -14,6 +14,8 @@ RSpec.describe 'Search group member' do end before do + stub_feature_flags(vue_group_members_list: false) + sign_in(user) visit group_group_members_path(guest_group) end diff --git a/spec/features/groups/members/sort_members_spec.rb b/spec/features/groups/members/sort_members_spec.rb index cfc0e421aeb..d940550b18a 100644 --- a/spec/features/groups/members/sort_members_spec.rb +++ b/spec/features/groups/members/sort_members_spec.rb @@ -8,6 +8,8 @@ RSpec.describe 'Groups > Members > Sort members' do let(:group) { create(:group) } before do + stub_feature_flags(vue_group_members_list: false) + create(:group_member, :owner, user: owner, group: group, created_at: 5.days.ago) create(:group_member, :developer, user: developer, group: group, created_at: 3.days.ago) diff --git a/spec/features/markdown/keyboard_shortcuts_spec.rb b/spec/features/markdown/keyboard_shortcuts_spec.rb new file mode 100644 index 00000000000..ff028a0281f --- /dev/null +++ b/spec/features/markdown/keyboard_shortcuts_spec.rb @@ -0,0 +1,101 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Markdown keyboard shortcuts', :js do + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } + + before do + project.add_developer(user) + + gitlab_sign_in(user) + + visit path_to_visit + + wait_for_requests + end + + shared_examples 'keyboard shortcuts for modifier key' do + it 'bolds text when <modifier>+B is pressed' do + type_and_select('bold') + + markdown_field.send_keys([modifier_key, 'b']) + + expect(markdown_field.value).to eq('**bold**') + end + + it 'italicizes text when <modifier>+I is pressed' do + type_and_select('italic') + + markdown_field.send_keys([modifier_key, 'i']) + + expect(markdown_field.value).to eq('_italic_') + end + + it 'links text when <modifier>+K is pressed' do + type_and_select('link') + + markdown_field.send_keys([modifier_key, 'k']) + + expect(markdown_field.value).to eq('[link](url)') + + # Type some more text to ensure the cursor + # and selection are set correctly + markdown_field.send_keys('https://example.com') + + expect(markdown_field.value).to eq('[link](https://example.com)') + end + + it 'does not affect non-markdown fields on the same page' do + non_markdown_field.send_keys('some text') + + non_markdown_field.send_keys([modifier_key, 'b']) + + expect(focused_element).to eq(non_markdown_field.native) + expect(markdown_field.value).to eq('') + end + end + + shared_examples 'keyboard shortcuts for implementation' do + context 'Ctrl key' do + let(:modifier_key) { :control } + + it_behaves_like 'keyboard shortcuts for modifier key' + end + + context '⌘ key' do + let(:modifier_key) { :command } + + it_behaves_like 'keyboard shortcuts for modifier key' + end + end + + context 'Vue.js markdown editor' do + let(:path_to_visit) { new_project_release_path(project) } + let(:markdown_field) { find_field('Release notes') } + let(:non_markdown_field) { find_field('Release title') } + + it_behaves_like 'keyboard shortcuts for implementation' + end + + context 'Haml markdown editor' do + let(:path_to_visit) { new_project_issue_path(project) } + let(:markdown_field) { find_field('Description') } + let(:non_markdown_field) { find_field('Title') } + + it_behaves_like 'keyboard shortcuts for implementation' + end + + def type_and_select(text) + markdown_field.send_keys(text) + + text.length.times do + markdown_field.send_keys([:shift, :arrow_left]) + end + end + + def focused_element + page.driver.browser.switch_to.active_element + end +end |