Skip to content
代码片段 群组 项目
未验证 提交 2f39310b 编辑于 作者: Cindy Halim's avatar Cindy Halim 提交者: GitLab
浏览文件

Clean up Web IDE global state data in QA specs

上级 ede166a8
No related branches found
No related tags found
无相关合并请求
......@@ -3,15 +3,11 @@
module QA
RSpec.describe 'Create', :skip_live_env, product_group: :remote_development do
describe 'Add first file in Web IDE' do
include_context 'Web IDE test prep'
let(:project) { create(:project, :with_readme, name: 'webide-create-file-project') }
before do
Flow::Login.sign_in
project.visit!
Page::Project::Show.perform(&:open_web_ide!)
Page::Project::WebIDE::VSCode.perform do |ide|
ide.wait_for_ide_to_load('README.md')
end
load_web_ide
end
context 'when a file with the same name already exists' do
......
......@@ -3,13 +3,9 @@
module QA
RSpec.describe 'Create', product_group: :remote_development do
describe 'Add a directory in Web IDE' do
include_context 'Web IDE test prep'
let(:project) { create(:project, :with_readme, name: 'webide-add-directory-project') }
before do
Flow::Login.sign_in
project.visit!
end
context 'when a directory with the same name already exists' do
let(:directory_name) { 'first_directory' }
......
......@@ -3,16 +3,12 @@
module QA
RSpec.describe 'Create', product_group: :remote_development do
describe 'Closing Web IDE' do
include_context "Web IDE test prep"
let(:file_name) { 'file.txt' }
let(:project) { create(:project, :with_readme, name: 'webide-close-with-unsaved-changes') }
before do
Flow::Login.sign_in
project.visit!
Page::Project::Show.perform(&:open_web_ide!)
Page::Project::WebIDE::VSCode.perform do |ide|
ide.wait_for_ide_to_load('README.md')
end
load_web_ide
end
it 'shows an alert when there are unsaved changes', :blocking,
......
......@@ -3,16 +3,12 @@
module QA
RSpec.describe 'Create', product_group: :remote_development do
describe 'Upload a file in Web IDE' do
include_context "Web IDE test prep"
let(:file_path) { File.absolute_path(File.join('qa', 'fixtures', 'web_ide', file_name)) }
let(:project) { create(:project, :with_readme, name: 'webide-upload-file-project') }
before do
Flow::Login.sign_in
project.visit!
Page::Project::Show.perform(&:open_web_ide!)
Page::Project::WebIDE::VSCode.perform do |ide|
ide.wait_for_ide_to_load('README.md')
end
load_web_ide
end
context 'when a file with the same name already exists' do
......
......@@ -5,22 +5,16 @@ module QA
# See https://docs.gitlab.com/ee/development/code_suggestions/#code-suggestions-development-setup
RSpec.describe 'Create', product_group: :remote_development do
describe 'Code Suggestions in Web IDE' do
include_context "Web IDE test prep"
let(:project) { create(:project, :with_readme, name: 'webide-code-suggestions-project') }
let(:file_name) { 'new_file.rb' }
let(:prompt_data) { 'def reverse_string' }
before do
Flow::Login.sign_in
create(:commit, project: project, actions: [
{ action: 'create', file_path: file_name, content: '# test' }
])
project.visit!
Page::Project::Show.perform(&:open_web_ide!)
Page::Project::WebIDE::VSCode.perform do |ide|
ide.wait_for_ide_to_load(file_name)
end
load_web_ide(file_name)
end
shared_examples 'a code generation suggestion' do |testcase|
......
......@@ -4,6 +4,7 @@ module QA
# https://docs.gitlab.com/ee/development/ai_features/duo_chat.html
RSpec.describe 'Create', product_group: :remote_development do
describe 'Duo Chat in Web IDE' do
include_context 'Web IDE test prep'
shared_examples 'Duo Chat' do |testcase|
it 'gets a response back from Duo Chat', testcase: testcase do
Page::Project::WebIDE::VSCode.perform do |ide|
......@@ -25,12 +26,7 @@ module QA
let(:project) { create(:project, :with_readme, name: 'webide-duo-chat-project') }
before do
Flow::Login.sign_in
project.visit!
Page::Project::Show.perform(&:open_web_ide!)
Page::Project::WebIDE::VSCode.perform do |ide|
ide.wait_for_ide_to_load('README.md')
end
load_web_ide
end
context 'on GitLab.com', :external_ai_provider,
......
# frozen_string_literal: true
module QA
include Support::API
RSpec.shared_context 'Web IDE test prep' do
before do
Flow::Login.sign_in
project.visit!
end
after(:context) do
clear_settings_sync_data
end
def load_web_ide(file_name = 'README.md')
Page::Project::Show.perform(&:open_web_ide!)
Page::Project::WebIDE::VSCode.perform do |ide|
ide.wait_for_ide_to_load(file_name)
end
end
private
def clear_settings_sync_data
# why: since the same user is used to run QA tests, the Web IDE settings can grow significantly.
# For example: The Web IDE keeps track of recently opened files with no upper limit set.
# https://gitlab.com/gitlab-org/gitlab-web-ide/-/issues/389
token = Resource::PersonalAccessToken.fabricate!.token
url = "#{Runtime::Scenario.gitlab_address}/api/v4/vscode/settings_sync/v1/collection"
Support::API.delete(url, {
headers: { Authorization: "Bearer #{token}" }
})
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册