diff options
Diffstat (limited to 'qa/qa/specs/features/browser_ui/3_create')
15 files changed, 157 insertions, 50 deletions
diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb index 257021b158a..1b82543a5d4 100644 --- a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb @@ -14,7 +14,7 @@ module QA end let!(:runner) do - Resource::Runner.fabricate! do |runner| + Resource::ProjectRunner.fabricate! do |runner| runner.project = project runner.name = runner_name runner.tags = [runner_name] diff --git a/qa/qa/specs/features/browser_ui/3_create/pages/new_static_page_spec.rb b/qa/qa/specs/features/browser_ui/3_create/pages/new_static_page_spec.rb index 449bffe61e0..a214af19fca 100644 --- a/qa/qa/specs/features/browser_ui/3_create/pages/new_static_page_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/pages/new_static_page_spec.rb @@ -9,7 +9,8 @@ module QA issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/383215', type: :test_environment, only: { subdomain: 'staging-ref' } - } do + }, + feature_flag: { name: 'show_pages_in_deployments_menu' } do # TODO: Convert back to :smoke once proved to be stable. Related issue: https://gitlab.com/gitlab-org/gitlab/-/issues/300906 describe 'Pages', product_group: :editor do let!(:project) do @@ -29,14 +30,21 @@ module QA end before do + # Pages Menu Experiment currently progress https://gitlab.com/gitlab-org/gitlab/-/merge_requests/98044 + # Update spec along with Feature Flag Removal. + Runtime::Feature.disable(:show_pages_in_deployments_menu) Flow::Login.sign_in - Resource::Runner.fabricate_via_api! do |runner| + Resource::ProjectRunner.fabricate_via_api! do |runner| runner.project = project runner.executor = :docker end pipeline.visit! end + after do + Runtime::Feature.enable(:show_pages_in_deployments_menu) + end + it 'creates a Pages website', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347669' do Page::Project::Pipeline::Show.perform do |show| diff --git a/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_page_deletion_spec.rb b/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_page_deletion_spec.rb index 626f9a7d593..fef6b8ad65f 100644 --- a/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_page_deletion_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_page_deletion_spec.rb @@ -1,23 +1,23 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', product_group: :editor do - describe 'Testing project wiki' - let(:initial_wiki) { Resource::Wiki::ProjectPage.fabricate_via_api! } + RSpec.describe 'Create' do + describe 'Testing project wiki', product_group: :editor do + let(:initial_wiki) { Resource::Wiki::ProjectPage.fabricate_via_api! } - before do - Flow::Login.sign_in - end + before do + Flow::Login.sign_in + end - it 'can delete a page', - testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347815' do - initial_wiki.visit! + it 'can delete a page', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347815' do + initial_wiki.visit! - Page::Project::Wiki::Show.perform(&:click_edit) - Page::Project::Wiki::Edit.perform(&:delete_page) + Page::Project::Wiki::Show.perform(&:click_edit) + Page::Project::Wiki::Edit.perform(&:delete_page) - Page::Project::Wiki::Show.perform do |wiki| - expect(wiki).to have_no_page + Page::Project::Wiki::Show.perform do |wiki| + expect(wiki).to have_no_page + end end end end diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb index b4103bd0976..7d21c635347 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb @@ -54,11 +54,10 @@ module QA Page::Project::Show.perform(&:create_new_file!) Page::File::Form.perform do |form| + form.add_custom_name(template[:file_name]) form.select_template template[:file_name], template[:name] expect(form).to have_normalized_ws_text(content[0..100]) - - form.add_name("#{SecureRandom.hex(8)}/#{template[:file_name]}") form.commit_changes aggregate_failures "indications of file created" do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb index 93f804f1e39..6cbbfb9e7e5 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb @@ -1,7 +1,12 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, + product_group: :editor, + quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387033', + type: :stale + } do describe 'Web IDE file templates' do include Runtime::Fixtures @@ -11,11 +16,11 @@ module QA project.description = 'Add file templates via the Web IDE' project.initialize_with_readme = true end - Runtime::Feature.disable(:vscode_web_ide, project: @project) + Runtime::Feature.disable(:vscode_web_ide) end after(:all) do - Runtime::Feature.enable(:vscode_web_ide, project: @project) + Runtime::Feature.enable(:vscode_web_ide) end templates = [ diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb index a001dee891a..ded1b1c9d7c 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387029', + type: :stale + } do describe 'Add a directory in Web IDE' do let(:project) do Resource::Project.fabricate_via_api! do |project| @@ -11,13 +14,13 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in project.visit! end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) end context 'when a directory with the same name already exists' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb index cb0da601a88..45499ea1999 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387723', + type: :stale + } do describe 'First file using Web IDE' do let(:project) do Resource::Project.fabricate_via_api! do |project| @@ -13,12 +16,12 @@ module QA let(:file_name) { 'the very first file.txt' } before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) end it "creates the first file in an empty project via Web IDE", testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347803' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb index 2007fe4a667..3ea87d90c2d 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387035', + type: :stale + } do describe 'Link to line in Web IDE' do let(:user) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) } let(:project) do @@ -11,12 +14,12 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) project.remove_via_api! end diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb index dc9f68c5c73..7195dd5c970 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor do describe 'Open a fork in Web IDE', skip: { issue: "https://gitlab.com/gitlab-org/gitlab/-/issues/351696", @@ -15,11 +15,11 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: parent_project) + Runtime::Feature.disable(:vscode_web_ide) end after do - Runtime::Feature.enable(:vscode_web_ide, project: parent_project) + Runtime::Feature.enable(:vscode_web_ide) end context 'when a user does not have permissions to commit to the project' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb index 039d25477bf..02d2710656d 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387031', + type: :stale + } do describe 'Open Web IDE from Diff Tab' do files = [ { @@ -44,13 +47,13 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in merge_request.visit! end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) end it 'opens and edits a multi-file merge request in Web IDE from Diff Tab', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347724' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb index fe0060e9bbc..4c21581781d 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387043', + type: :stale + } do describe 'Review a merge request in Web IDE' do let(:new_file) { 'awesome_new_file.txt' } let(:original_text) { 'Text' } @@ -23,13 +26,13 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in merge_request.visit! end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) end it 'opens and edits a merge request in Web IDE', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347786' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb index 3cd14ecd799..8c171e6bc8c 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb @@ -2,8 +2,12 @@ module QA RSpec.describe 'Create', :skip_live_env, except: { job: 'review-qa-*' }, - feature_flag: { name: 'vscode_web_ide', scope: :project }, - product_group: :editor do + feature_flag: { name: 'vscode_web_ide', scope: :global }, + product_group: :editor, + quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387928', + type: :stale + } do describe 'Git Server Hooks' do let(:file_path) { File.absolute_path(File.join('qa', 'fixtures', 'web_ide', 'README.md')) } @@ -16,13 +20,13 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in project.visit! end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) end context 'Custom error messages' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb index c6e283f67e0..781623d10f6 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :project }, product_group: :editor do + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387032', + type: :stale + } do describe 'Upload a file in Web IDE' do let(:file_path) { File.absolute_path(File.join('qa', 'fixtures', 'web_ide', file_name)) } @@ -13,7 +16,7 @@ module QA end before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) Flow::Login.sign_in project.visit! @@ -21,7 +24,7 @@ module QA end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) end context 'when a file with the same name already exists' do diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/web_terminal_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/web_terminal_spec.rb index 695b295bd86..599c34ed3db 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/web_terminal_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/web_terminal_spec.rb @@ -10,12 +10,12 @@ module QA issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/338179', type: :bug }, - feature_flag: { name: 'vscode_web_ide', scope: :project }, + feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor ) do describe 'Web IDE web terminal' do before do - Runtime::Feature.disable(:vscode_web_ide, project: project) + Runtime::Feature.disable(:vscode_web_ide) project = Resource::Project.fabricate_via_api! do |project| project.name = 'web-terminal-project' end @@ -37,7 +37,7 @@ module QA ) end - @runner = Resource::Runner.fabricate_via_api! do |runner| + @runner = Resource::ProjectRunner.fabricate_via_api! do |runner| runner.project = project runner.name = "qa-runner-#{Time.now.to_i}" runner.tags = %w[web-ide] @@ -58,7 +58,7 @@ module QA end after do - Runtime::Feature.enable(:vscode_web_ide, project: project) + Runtime::Feature.enable(:vscode_web_ide) @runner.remove_via_api! if @runner end diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide_new/add_new_directory_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide_new/add_new_directory_in_web_ide_spec.rb new file mode 100644 index 00000000000..7b40c8a62c1 --- /dev/null +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide_new/add_new_directory_in_web_ide_spec.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true + +module QA + RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor do + describe 'Add a directory in Web IDE' do + let(:project) do + Resource::Project.fabricate_via_api! do |project| + project.name = 'add-directory-project' + project.initialize_with_readme = true + end + end + + before do + Runtime::Feature.enable(:vscode_web_ide) + Flow::Login.sign_in + project.visit! + end + + after do + Runtime::Feature.disable(:vscode_web_ide) + end + + context 'when a directory with the same name already exists' do + let(:directory_name) { 'first_directory' } + + before do + Resource::Repository::Commit.fabricate_via_api! do |commit| + commit.project = project + commit.add_files( + [ + { + file_path: 'first_directory/test_file.txt', + content: "Test file content" + } + ]) + end + project.visit! + end + + it 'throws an error', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386760' do + Page::Project::Show.perform(&:open_web_ide!) + Page::Project::WebIDE::VSCode.perform do |ide| + ide.wait_for_ide_to_load + ide.create_new_folder(directory_name) + ide.within_vscode_editor do + expect(page).to have_content('A file or folder first_directory already exists at this location.') + end + end + end + end + + context 'when user adds a new empty directory' do + let(:directory_name) { 'new_empty_directory' } + + before do + Page::Project::Show.perform(&:open_web_ide!) + end + + it 'shows successfully but not able to be committed', +testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386761' do + Page::Project::WebIDE::VSCode.perform do |ide| + ide.wait_for_ide_to_load + ide.create_new_folder(directory_name) + ide.commit_and_push(directory_name) + ide.within_vscode_editor do + expect(page).to have_content('No changes found. Not able to commit.') + end + end + end + end + end + end +end |