2019-07-02 08:05:31 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module QA
|
2020-07-07 06:09:06 +00:00
|
|
|
RSpec.describe 'Manage' do
|
2022-06-07 15:08:12 +00:00
|
|
|
describe 'Project transfer between groups', :reliable do
|
2020-07-15 00:09:23 +00:00
|
|
|
let(:source_group) do
|
|
|
|
Resource::Group.fabricate_via_api! do |group|
|
2022-06-01 09:09:17 +00:00
|
|
|
group.path = "source-group-#{SecureRandom.hex(8)}"
|
2019-07-02 08:05:31 +00:00
|
|
|
end
|
2020-07-15 00:09:23 +00:00
|
|
|
end
|
2019-07-02 08:05:31 +00:00
|
|
|
|
2020-07-15 00:09:23 +00:00
|
|
|
let(:target_group) do
|
|
|
|
Resource::Group.fabricate_via_api! do |group|
|
2020-09-15 12:09:30 +00:00
|
|
|
group.path = "target-group-for-transfer_#{SecureRandom.hex(8)}"
|
2019-07-02 08:05:31 +00:00
|
|
|
end
|
2020-07-15 00:09:23 +00:00
|
|
|
end
|
2019-07-02 08:05:31 +00:00
|
|
|
|
2020-07-15 00:09:23 +00:00
|
|
|
let(:project) do
|
|
|
|
Resource::Project.fabricate_via_api! do |project|
|
2019-07-02 08:05:31 +00:00
|
|
|
project.group = source_group
|
2020-09-15 12:09:30 +00:00
|
|
|
project.name = 'transfer-project'
|
2019-07-02 08:05:31 +00:00
|
|
|
project.initialize_with_readme = true
|
|
|
|
end
|
2020-07-15 00:09:23 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
let(:edited_readme_content) { 'Here is the edited content.' }
|
|
|
|
|
|
|
|
before do
|
|
|
|
Flow::Login.sign_in
|
2019-07-02 08:05:31 +00:00
|
|
|
|
|
|
|
project.visit!
|
|
|
|
|
|
|
|
Page::Project::Show.perform do |project|
|
|
|
|
project.click_file('README.md')
|
|
|
|
end
|
|
|
|
|
|
|
|
Page::File::Show.perform(&:click_edit)
|
|
|
|
|
|
|
|
Page::File::Edit.perform do |file|
|
|
|
|
file.remove_content
|
|
|
|
file.add_content(edited_readme_content)
|
|
|
|
file.commit_changes
|
|
|
|
end
|
2020-07-15 00:09:23 +00:00
|
|
|
end
|
2019-07-02 08:05:31 +00:00
|
|
|
|
2020-12-17 06:10:13 +00:00
|
|
|
it 'user transfers a project between groups',
|
2021-12-13 21:14:32 +00:00
|
|
|
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347878' do
|
2020-09-15 12:09:30 +00:00
|
|
|
# Retry is needed here as the target group is not avaliable for transfer right away.
|
|
|
|
QA::Support::Retrier.retry_on_exception(reload_page: page) do
|
|
|
|
Page::File::Show.perform(&:go_to_general_settings)
|
2019-07-02 08:05:31 +00:00
|
|
|
|
2020-09-15 12:09:30 +00:00
|
|
|
Page::Project::Settings::Main.perform(&:expand_advanced_settings)
|
2019-07-02 08:05:31 +00:00
|
|
|
|
2020-09-15 12:09:30 +00:00
|
|
|
Page::Project::Settings::Advanced.perform do |advanced|
|
|
|
|
advanced.transfer_project!(project.name, target_group.full_path)
|
|
|
|
end
|
2019-07-02 08:05:31 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
Page::Project::Settings::Main.perform(&:click_project)
|
|
|
|
|
|
|
|
Page::Project::Show.perform do |project|
|
2020-03-20 21:09:17 +00:00
|
|
|
expect(project).to have_breadcrumb(target_group.path)
|
|
|
|
expect(project).to have_readme_content(edited_readme_content)
|
2019-07-02 08:05:31 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|