Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
854fe23e65
commit
8d15913bc4
169 changed files with 338 additions and 260 deletions
|
@ -1,4 +1,4 @@
|
|||
query groupMilestones(
|
||||
query projectMilestones(
|
||||
$fullPath: ID!
|
||||
$state: MilestoneStateEnum
|
||||
$includeAncestors: Boolean
|
||||
|
|
|
@ -14,3 +14,4 @@ export const TYPE_SITE_PROFILE = 'DastSiteProfile';
|
|||
export const TYPE_USER = 'User';
|
||||
export const TYPE_VULNERABILITY = 'Vulnerability';
|
||||
export const TYPE_NOTE = 'Note';
|
||||
export const TYPE_DISCUSSION = 'Discussion';
|
||||
|
|
|
@ -43,7 +43,6 @@ export const fromUrlQueryToSearch = (query = window.location.search) => {
|
|||
urlQueryToFilter(query, {
|
||||
filterNamesAllowList: [PARAM_KEY_STATUS, PARAM_KEY_RUNNER_TYPE, PARAM_KEY_TAG],
|
||||
filteredSearchTermKey: PARAM_KEY_SEARCH,
|
||||
legacySpacesDecode: false,
|
||||
}),
|
||||
),
|
||||
sort: params[PARAM_KEY_SORT] || DEFAULT_SORT,
|
||||
|
|
|
@ -177,12 +177,13 @@ function filteredSearchTermValue(value) {
|
|||
* @param {Object} options
|
||||
* @param {String} [options.filteredSearchTermKey] if set, a FILTERED_SEARCH_TERM filter is created to this parameter. `'search'` is suggested
|
||||
* @param {String[]} [options.filterNamesAllowList] if set, only this list of filters names is mapped
|
||||
* @param {Boolean} [options.legacySpacesDecode] if set, plus symbols (+) are not encoded as spaces. `false` is suggested
|
||||
* @param {Boolean} [options.legacySpacesDecode] if set to true, plus symbols (+) are not encoded as spaces.
|
||||
* @return {Object} filter object with filter names and their values
|
||||
*/
|
||||
export function urlQueryToFilter(query = '', options = {}) {
|
||||
const { filteredSearchTermKey, filterNamesAllowList, legacySpacesDecode = true } = options;
|
||||
|
||||
export function urlQueryToFilter(
|
||||
query = '',
|
||||
{ filteredSearchTermKey, filterNamesAllowList, legacySpacesDecode = false } = {},
|
||||
) {
|
||||
const filters = queryToObject(query, { gatherArrays: true, legacySpacesDecode });
|
||||
return Object.keys(filters).reduce((memo, key) => {
|
||||
const value = filters[key];
|
||||
|
|
|
@ -39,6 +39,11 @@ WARNING:
|
|||
To move repositories into a [Gitaly Cluster](../gitaly/index.md#gitaly-cluster) in GitLab versions
|
||||
13.12 to 14.1, you must [enable the `gitaly_replicate_repository_direct_fetch` feature flag](../feature_flags.md).
|
||||
|
||||
WARNING:
|
||||
Repositories can be **permanently deleted** by a call to `/projects/:project_id/repository_storage_moves`
|
||||
that attempts to move a project already stored in a Gitaly Cluster back into that cluster.
|
||||
See [this issue for more details](https://gitlab.com/gitlab-org/gitaly/-/issues/3752).
|
||||
|
||||
Each repository is made read-only for the duration of the move. The repository is not writable
|
||||
until the move has completed.
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ number of pods that are defined for the deployment, which are configured when th
|
|||
cluster is created.
|
||||
|
||||
For example, if your application has 10 pods and a 10% rollout job runs, the new instance of the
|
||||
application is deployed to a single pod while the remaining nine are present the previous instance.
|
||||
application is deployed to a single pod while the rest of the pods show the previous instance of the application.
|
||||
|
||||
First we [define the template as manual](https://gitlab.com/gl-release/incremental-rollout-example/blob/master/.gitlab-ci.yml#L100-103):
|
||||
|
||||
|
|
|
@ -14,27 +14,27 @@ The QA framework uses [Zeitwerk](https://github.com/fxn/zeitwerk) for class and
|
|||
|
||||
In case custom inflection logic is needed, custom inflectors are added in the [qa.rb](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa.rb) file in the `loader.inflector.inflect` method invocation.
|
||||
|
||||
## Link a test to its test-case issue
|
||||
## Link a test to its test case
|
||||
|
||||
Every test should have a corresponding issue in the [Quality Test Cases project](https://gitlab.com/gitlab-org/quality/testcases/).
|
||||
It's recommended that you reuse the issue created to plan the test. If one does not already exist you
|
||||
can create the issue yourself. Alternatively, you can run the test in a pipeline that has reporting
|
||||
enabled and the test-case issue reporter will automatically create a new issue.
|
||||
Every test should have a corresponding test case as well as a results issue in the [Quality Test Cases project](https://gitlab.com/gitlab-org/quality/testcases/).
|
||||
It's recommended that you reuse the issue created to plan the test as the results issue. If a test case or results issue does not already exist you
|
||||
can create them yourself. Alternatively, you can run the test in a pipeline that has reporting
|
||||
enabled and the test-case reporter will automatically create a new test case and/or results issue and link the results issue to it's corresponding test case.
|
||||
|
||||
Whether you create a new test-case issue or one is created automatically, you will need to manually add
|
||||
a `testcase` RSpec metadata tag. In most cases, a single test will be associated with a single test-case
|
||||
issue ([see below for exceptions](#exceptions)).
|
||||
Whether you create a new test case or one is created automatically, you will need to manually add
|
||||
a `testcase` RSpec metadata tag. In most cases, a single test will be associated with a single test case
|
||||
([see below for exceptions](#exceptions)).
|
||||
|
||||
For example:
|
||||
|
||||
```ruby
|
||||
RSpec.describe 'Stage' do
|
||||
describe 'General description of the feature under test' do
|
||||
it 'test name', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/:issue_id' do
|
||||
it 'test name', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/:test_case_id' do
|
||||
...
|
||||
end
|
||||
|
||||
it 'another test', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/:another_issue_id' do
|
||||
it 'another test', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/:another_test_case_id' do
|
||||
...
|
||||
end
|
||||
end
|
||||
|
@ -44,10 +44,10 @@ end
|
|||
### Exceptions
|
||||
|
||||
Most tests are defined by a single line of a `spec` file, which is why those tests can be linked to a
|
||||
single test-case issue via the `testcase` tag.
|
||||
single test case via the `testcase` tag.
|
||||
|
||||
However, some tests don't have a one-to-one relationship between a line of a `spec` file and a test-case
|
||||
issue. This is because some tests are defined in a way that means a single line is associated with
|
||||
However, some tests don't have a one-to-one relationship between a line of a `spec` file and a test case.
|
||||
This is because some tests are defined in a way that means a single line is associated with
|
||||
multiple tests, including:
|
||||
|
||||
- Parallelized tests.
|
||||
|
@ -55,13 +55,13 @@ multiple tests, including:
|
|||
- Tests in shared examples that include more than one example.
|
||||
|
||||
In those and similar cases we can't assign a single `testcase` tag and so we rely on the test-case
|
||||
reporter to programmatically determine the correct test-case issue based on the name and description of
|
||||
the test. In such cases, the test-case reporter will automatically create a test-case issue the first time
|
||||
the test runs, if no issue exists already.
|
||||
reporter to programmatically determine the correct test case based on the name and description of
|
||||
the test. In such cases, the test-case reporter will automatically create a test case and/or results issue
|
||||
the first time the test runs, if none exist already.
|
||||
|
||||
In such a case, if you create the issue yourself or want to reuse an existing issue,
|
||||
In such a case, if you create the test case or results issue yourself or want to reuse an existing issue,
|
||||
you must use this [end-to-end test issue template](https://gitlab.com/gitlab-org/quality/testcases/-/blob/master/.gitlab/issue_templates/End-to-end%20Test.md)
|
||||
to format the issue description.
|
||||
to format the issue description. (Note you must copy/paste this for test cases as templates aren't currently available.)
|
||||
|
||||
To illustrate, there are two tests in the shared examples in [`qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/47b17db82c38ab704a23b5ba5d296ea0c6a732c8/qa/qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb):
|
||||
|
||||
|
@ -90,9 +90,37 @@ RSpec.describe 'Create' do
|
|||
end
|
||||
```
|
||||
|
||||
There would be two associated test-case issues, one for each shared example, with the following content:
|
||||
There would be two associated test cases, one for each shared example, with the following content:
|
||||
|
||||
[Test 1](https://gitlab.com/gitlab-org/quality/testcases/-/issues/600):
|
||||
[Test 1 Test Case](https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1491):
|
||||
|
||||
````markdown
|
||||
```markdown
|
||||
Title: browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb | Create Restricted
|
||||
protected branch push and merge when only one user is allowed to merge and push to a protected
|
||||
branch behaves like only user with access pushes and merges selecte...
|
||||
|
||||
Description:
|
||||
### Full description
|
||||
|
||||
Create Restricted protected branch push and merge when only one user is allowed to merge and push
|
||||
to a protected branch behaves like only user with access pushes and merges selected developer user
|
||||
pushes and merges
|
||||
|
||||
### File path
|
||||
|
||||
./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb
|
||||
|
||||
### DO NOT EDIT BELOW THIS LINE
|
||||
|
||||
Active and historical test results:
|
||||
|
||||
https://gitlab.com/gitlab-org/quality/testcases/-/issues/600
|
||||
|
||||
```
|
||||
````
|
||||
|
||||
[Test 1 Results Issue](https://gitlab.com/gitlab-org/quality/testcases/-/issues/600):
|
||||
|
||||
````markdown
|
||||
```markdown
|
||||
|
@ -114,7 +142,35 @@ pushes and merges
|
|||
```
|
||||
````
|
||||
|
||||
[Test 2](https://gitlab.com/gitlab-org/quality/testcases/-/issues/602):
|
||||
[Test 2 Test Case](https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/602):
|
||||
|
||||
````markdown
|
||||
```markdown
|
||||
Title: browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb | Create Restricted
|
||||
protected branch push and merge when only one user is allowed to merge and push to a protected
|
||||
branch behaves like only user with access pushes and merges unselec...
|
||||
|
||||
Description:
|
||||
### Full description
|
||||
|
||||
Create Restricted protected branch push and merge when only one user is allowed to merge and push
|
||||
to a protected branch behaves like only user with access pushes and merges unselected maintainer
|
||||
user fails to push
|
||||
|
||||
### File path
|
||||
|
||||
./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb
|
||||
|
||||
### DO NOT EDIT BELOW THIS LINE
|
||||
|
||||
Active and historical test results:
|
||||
|
||||
https://gitlab.com/gitlab-org/quality/testcases/-/issues/602
|
||||
|
||||
```
|
||||
````
|
||||
|
||||
[Test 2 Results Issue](https://gitlab.com/gitlab-org/quality/testcases/-/issues/602):
|
||||
|
||||
````markdown
|
||||
```markdown
|
||||
|
|
|
@ -11496,6 +11496,12 @@ msgstr ""
|
|||
msgid "DevopsAdoption|Adopted"
|
||||
msgstr ""
|
||||
|
||||
msgid "DevopsAdoption|Adoption by group"
|
||||
msgstr ""
|
||||
|
||||
msgid "DevopsAdoption|Adoption by subgroup"
|
||||
msgstr ""
|
||||
|
||||
msgid "DevopsAdoption|An error occurred while removing the group. Please try again."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ module QA
|
|||
|
||||
it(
|
||||
'imports group with subgroups and labels',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1871'
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1873'
|
||||
) do
|
||||
expect { imported_group.import_status }.to(
|
||||
eventually_eq('finished').within(max_duration: 300, sleep_interval: 2)
|
||||
|
|
|
@ -30,7 +30,7 @@ module QA
|
|||
user.remove_via_api!
|
||||
end
|
||||
|
||||
it 'imports Github repo via api', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1858' do
|
||||
it 'imports Github repo via api', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1878' do
|
||||
imported_project # import the project
|
||||
|
||||
expect { imported_project.reload!.import_status }.to eventually_eq('finished').within(max_duration: 90)
|
||||
|
|
|
@ -128,7 +128,7 @@ module QA
|
|||
)
|
||||
end
|
||||
|
||||
it 'imports large Github repo via api' do
|
||||
it 'imports large Github repo via api', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1880' do
|
||||
start = Time.now
|
||||
|
||||
Runtime::Logger.info("Importing project '#{imported_project.full_path}'") # import the project and log path
|
||||
|
|
|
@ -9,7 +9,7 @@ module QA
|
|||
end
|
||||
|
||||
context 'for the same project' do
|
||||
it 'can be used to create a file via the project API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1734' do
|
||||
it 'can be used to create a file via the project API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1823' do
|
||||
expect do
|
||||
Resource::File.fabricate_via_api! do |file|
|
||||
file.api_client = @user_api_client
|
||||
|
@ -22,7 +22,7 @@ module QA
|
|||
end.not_to raise_error
|
||||
end
|
||||
|
||||
it 'can be used to commit via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1735' do
|
||||
it 'can be used to commit via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1822' do
|
||||
expect do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.api_client = @user_api_client
|
||||
|
@ -43,7 +43,7 @@ module QA
|
|||
@different_project = Resource::Project.fabricate!
|
||||
end
|
||||
|
||||
it 'cannot be used to create a file via the project API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1736' do
|
||||
it 'cannot be used to create a file via the project API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1821' do
|
||||
expect do
|
||||
Resource::File.fabricate_via_api! do |file|
|
||||
file.api_client = @user_api_client
|
||||
|
@ -56,7 +56,7 @@ module QA
|
|||
end.to raise_error(Resource::ApiFabricator::ResourceFabricationFailedError, /403 Forbidden/)
|
||||
end
|
||||
|
||||
it 'cannot be used to commit via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1737' do
|
||||
it 'cannot be used to commit via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1820' do
|
||||
expect do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.api_client = @user_api_client
|
||||
|
|
|
@ -8,7 +8,7 @@ module QA
|
|||
let(:api_client) { Runtime::API::Client.new(:gitlab, ip_limits: true) }
|
||||
let(:request) { Runtime::API::Request.new(api_client, '/users') }
|
||||
|
||||
it 'GET /users', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/441' do
|
||||
it 'GET /users', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1567' do
|
||||
5.times do
|
||||
get request.url
|
||||
expect_status(200)
|
||||
|
|
|
@ -30,7 +30,7 @@ module QA
|
|||
@group.sandbox.remove_member(@user)
|
||||
end
|
||||
|
||||
it 'is not allowed to push code via the CLI', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1660' do
|
||||
it 'is not allowed to push code via the CLI', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1712' do
|
||||
expect do
|
||||
Resource::Repository::Push.fabricate! do |push|
|
||||
push.repository_http_uri = @project.repository_http_location.uri
|
||||
|
@ -43,7 +43,7 @@ module QA
|
|||
end.to raise_error(QA::Support::Run::CommandError, /You are not allowed to push code to this project/)
|
||||
end
|
||||
|
||||
it 'is not allowed to create a file via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1661' do
|
||||
it 'is not allowed to create a file via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1711' do
|
||||
expect do
|
||||
Resource::File.fabricate_via_api! do |file|
|
||||
file.api_client = @user_api_client
|
||||
|
@ -56,7 +56,7 @@ module QA
|
|||
end.to raise_error(Resource::ApiFabricator::ResourceFabricationFailedError, /403 Forbidden/)
|
||||
end
|
||||
|
||||
it 'is not allowed to commit via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1662' do
|
||||
it 'is not allowed to commit via the API', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1710' do
|
||||
expect do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.api_client = @user_api_client
|
||||
|
|
|
@ -8,13 +8,13 @@ module QA
|
|||
let(:api_client) { Runtime::API::Client.new(:gitlab) }
|
||||
let(:request) { Runtime::API::Request.new(api_client, '/users') }
|
||||
|
||||
it 'GET /users', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/460' do
|
||||
it 'GET /users', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1552' do
|
||||
get request.url
|
||||
|
||||
expect_status(200)
|
||||
end
|
||||
|
||||
it 'GET /users/:username with a valid username', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/480' do
|
||||
it 'GET /users/:username with a valid username', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1544' do
|
||||
get request.url, { params: { username: Runtime::User.username } }
|
||||
|
||||
expect_status(200)
|
||||
|
@ -23,7 +23,7 @@ module QA
|
|||
)
|
||||
end
|
||||
|
||||
it 'GET /users/:username with an invalid username', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/462' do
|
||||
it 'GET /users/:username with an invalid username', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1551' do
|
||||
get request.url, { params: { username: SecureRandom.hex(10) } }
|
||||
|
||||
expect_status(200)
|
||||
|
|
|
@ -22,7 +22,7 @@ module QA
|
|||
push_commit('Initial commit')
|
||||
end
|
||||
|
||||
it 'closes via pushing a commit', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/423' do
|
||||
it 'closes via pushing a commit', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1579' do
|
||||
push_commit("Closes ##{issue_id}", false)
|
||||
|
||||
Support::Retrier.retry_until(max_duration: 10, sleep_interval: 1) do
|
||||
|
|
|
@ -28,7 +28,7 @@ module QA
|
|||
praefect_manager.reset_primary_to_original
|
||||
end
|
||||
|
||||
it 'automatically fails over', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/976' do
|
||||
it 'automatically fails over', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1267' do
|
||||
# Create a new project with a commit and wait for it to replicate
|
||||
Resource::Repository::ProjectPush.fabricate! do |push|
|
||||
push.project = project
|
||||
|
@ -66,7 +66,7 @@ module QA
|
|||
end
|
||||
|
||||
context 'when recovering from dataloss after failover' do
|
||||
it 'automatically reconciles', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/238187', type: :stale }, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/977' do
|
||||
it 'automatically reconciles', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/238187', type: :stale }, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1266' do
|
||||
# Start the old primary node again
|
||||
praefect_manager.start_primary_node
|
||||
praefect_manager.wait_for_health_check_current_primary_node
|
||||
|
|
|
@ -22,7 +22,7 @@ module QA
|
|||
praefect_manager.reset_primary_to_original
|
||||
end
|
||||
|
||||
it 'recovers from dataloss', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/978' do
|
||||
it 'recovers from dataloss', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1265' do
|
||||
# Create a new project with a commit and wait for it to replicate
|
||||
praefect_manager.wait_for_replication(project.id)
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
context 'when moving from one Gitaly storage to another', :orchestrated, :repository_storage, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/973' do
|
||||
context 'when moving from one Gitaly storage to another', :orchestrated, :repository_storage, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1270' do
|
||||
let(:source_storage) { { type: :gitaly, name: 'default' } }
|
||||
let(:destination_storage) { { type: :gitaly, name: QA::Runtime::Env.additional_repository_storage } }
|
||||
let(:project) do
|
||||
|
@ -45,7 +45,7 @@ module QA
|
|||
# Note: This test doesn't have the :orchestrated tag because it runs in the Test::Integration::Praefect
|
||||
# scenario with other tests that aren't considered orchestrated.
|
||||
# It also runs on staging using nfs-file07 as non-cluster storage and nfs-file22 as cluster/praefect storage
|
||||
context 'when moving from Gitaly to Gitaly Cluster', :requires_praefect, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1755', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/284645', type: :investigating } do
|
||||
context 'when moving from Gitaly to Gitaly Cluster', :requires_praefect, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1269', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/284645', type: :investigating } do
|
||||
let(:source_storage) { { type: :gitaly, name: QA::Runtime::Env.non_cluster_repository_storage } }
|
||||
let(:destination_storage) { { type: :praefect, name: QA::Runtime::Env.praefect_repository_storage } }
|
||||
let(:project) do
|
||||
|
|
|
@ -19,7 +19,7 @@ module QA
|
|||
praefect_manager.wait_for_replication(project.id)
|
||||
end
|
||||
|
||||
it 'reads from each node', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/979' do
|
||||
it 'reads from each node', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1264' do
|
||||
pre_read_data = praefect_manager.query_read_distribution
|
||||
|
||||
wait_for_reads_to_increase(project, number_of_reads_per_loop, pre_read_data)
|
||||
|
@ -47,7 +47,7 @@ module QA
|
|||
praefect_manager.wait_for_reliable_connection
|
||||
end
|
||||
|
||||
it 'does not read from the unhealthy node', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/980' do
|
||||
it 'does not read from the unhealthy node', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1263' do
|
||||
pre_read_data = praefect_manager.query_read_distribution
|
||||
|
||||
read_from_project(project, number_of_reads_per_loop * 10)
|
||||
|
|
|
@ -8,7 +8,7 @@ module QA
|
|||
let(:first_added_commit_message) { 'commit over git' }
|
||||
let(:second_added_commit_message) { 'commit over api' }
|
||||
|
||||
it 'pushes to gitaly', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1118' do
|
||||
it 'pushes to gitaly', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1843' do
|
||||
project = Resource::Project.fabricate! do |project|
|
||||
project.name = "mTLS"
|
||||
project.initialize_with_readme = true
|
||||
|
|
|
@ -19,7 +19,7 @@ module QA
|
|||
praefect_manager.clear_replication_queue
|
||||
end
|
||||
|
||||
it 'allows replication of different repository after interruption', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/975' do
|
||||
it 'allows replication of different repository after interruption', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1268' do
|
||||
# We want to fill the replication queue with 10 `in_progress` jobs,
|
||||
# while a lock has been acquired, which is when the problem occurred
|
||||
# as reported in https://gitlab.com/gitlab-org/gitaly/-/issues/2801
|
||||
|
|
|
@ -31,7 +31,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'sets labels', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1032' do
|
||||
it 'sets labels', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1244' do
|
||||
create_new_mr_via_push
|
||||
|
||||
merge_request = project.merge_request_with_title(title)
|
||||
|
@ -45,7 +45,7 @@ module QA
|
|||
create_new_mr_via_push
|
||||
end
|
||||
|
||||
it 'removes them on subsequent push', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1033' do
|
||||
it 'removes them on subsequent push', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1243' do
|
||||
Resource::Repository::ProjectPush.fabricate! do |push|
|
||||
push.project = project
|
||||
push.file_content = "Unlabel test #{SecureRandom.hex(8)}"
|
||||
|
|
|
@ -29,7 +29,7 @@ module QA
|
|||
runner.remove_via_api!
|
||||
end
|
||||
|
||||
it 'sets merge when pipeline succeeds', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1037' do
|
||||
it 'sets merge when pipeline succeeds', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1240' do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.project = project
|
||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
||||
|
@ -72,7 +72,7 @@ module QA
|
|||
expect(merge_request.merge_when_pipeline_succeeds).to be true
|
||||
end
|
||||
|
||||
it 'merges when pipeline succeeds', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1036' do
|
||||
it 'merges when pipeline succeeds', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1241' do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.project = project
|
||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
||||
|
|
|
@ -17,7 +17,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'removes the source branch', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1035' do
|
||||
it 'removes the source branch', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1242' do
|
||||
Resource::Repository::ProjectPush.fabricate! do |push|
|
||||
push.project = project
|
||||
push.branch_name = branch
|
||||
|
|
|
@ -16,7 +16,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'sets a target branch', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1034' do
|
||||
it 'sets a target branch', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1646' do
|
||||
target_branch = "push-options-test-target-#{SecureRandom.hex(8)}"
|
||||
|
||||
Resource::Repository::ProjectPush.fabricate! do |push|
|
||||
|
|
|
@ -14,7 +14,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'sets title and description', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1038' do
|
||||
it 'sets title and description', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1239' do
|
||||
description = "This is a test of MR push options"
|
||||
title = "MR push options test #{SecureRandom.hex(8)}"
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ module QA
|
|||
Runtime::ApplicationSettings.restore_application_settings(:default_branch_name)
|
||||
end
|
||||
|
||||
it 'sets the default branch name for a new project', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1018' do
|
||||
it 'sets the default branch name for a new project', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1247' do
|
||||
project = Resource::Project.fabricate_via_api! do |project|
|
||||
project.name = "default-branch-name"
|
||||
project.initialize_with_readme = true
|
||||
|
@ -30,7 +30,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'allows a project to be created via the CLI with a different default branch name', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1019' do
|
||||
it 'allows a project to be created via the CLI with a different default branch name', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1246' do
|
||||
project_name = "default-branch-name-via-cli-#{SecureRandom.hex(8)}"
|
||||
group = Resource::Group.fabricate_via_api!
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ module QA
|
|||
let(:project_name) { "api-basics-#{SecureRandom.hex(8)}" }
|
||||
let(:sanitized_project_path) { CGI.escape("#{Runtime::User.username}/#{project_name}") }
|
||||
|
||||
it 'user creates a project with a file and deletes them afterwards', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/420' do
|
||||
it 'user creates a project with a file and deletes them afterwards', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1581' do
|
||||
create_project_request = Runtime::API::Request.new(@api_client, '/projects')
|
||||
post create_project_request.url, path: project_name, name: project_name
|
||||
|
||||
|
@ -77,7 +77,7 @@ module QA
|
|||
SVG
|
||||
end
|
||||
|
||||
it 'sets no-cache headers as expected', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/421' do
|
||||
it 'sets no-cache headers as expected', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1580' do
|
||||
create_project_request = Runtime::API::Request.new(@api_client, '/projects')
|
||||
post create_project_request.url, path: project_name, name: project_name
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'download archives of each user project then check they are different', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/427' do
|
||||
it 'download archives of each user project then check they are different', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1575' do
|
||||
archive_checksums = {}
|
||||
|
||||
users.each do |user_key, user_info|
|
||||
|
|
|
@ -17,11 +17,11 @@ module QA
|
|||
project&.remove_via_api!
|
||||
end
|
||||
|
||||
it 'pushes and creates a single push event three times', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1744' do
|
||||
it 'pushes and creates a single push event three times', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1840' do
|
||||
verify_single_event_per_push(repeat: 3)
|
||||
end
|
||||
|
||||
it 'repeatedly pushes and creates a single push event several times', :transient, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1744' do
|
||||
it 'repeatedly pushes and creates a single push event several times', :transient, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1915' do
|
||||
verify_single_event_per_push(repeat: Runtime::Env.transient_trials) do |i|
|
||||
QA::Runtime::Logger.info("Transient bug test action - Trial #{i}")
|
||||
end
|
||||
|
|
|
@ -21,7 +21,7 @@ module QA
|
|||
praefect_manager.gitlab = 'gitlab'
|
||||
end
|
||||
|
||||
it 'moves snippet repository from one Gitaly storage to another', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1700' do
|
||||
it 'moves snippet repository from one Gitaly storage to another', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1912' do
|
||||
expect(snippet).to have_file('original_file')
|
||||
expect { snippet.change_repository_storage(destination_storage[:name]) }.not_to raise_error
|
||||
expect { praefect_manager.verify_storage_move(source_storage, destination_storage, repo_type: :snippet) }.not_to raise_error
|
||||
|
|
|
@ -34,7 +34,7 @@ module QA
|
|||
project.remove_via_api!
|
||||
end
|
||||
|
||||
it 'pipeline schedule is canceled', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1730' do
|
||||
it 'pipeline schedule is canceled', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1825' do
|
||||
user.block!
|
||||
|
||||
expect(pipeline_schedule[:active]).not_to be_truthy, "Expected schedule active state to be false - active state #{pipeline_schedule[:active]}"
|
||||
|
|
|
@ -72,7 +72,7 @@ module QA
|
|||
registry&.remove_via_api!
|
||||
end
|
||||
|
||||
it 'pushes, pulls image to the registry and deletes image blob, manifest and tag', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1738' do
|
||||
it 'pushes, pulls image to the registry and deletes image blob, manifest and tag', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1819' do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.api_client = api_client
|
||||
commit.commit_message = 'Add .gitlab-ci.yml'
|
||||
|
|
|
@ -56,7 +56,7 @@ module QA
|
|||
|
||||
it(
|
||||
'imports group from UI',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1785',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1806',
|
||||
issue_1: 'https://gitlab.com/gitlab-org/gitlab/-/issues/331252',
|
||||
issue_2: 'https://gitlab.com/gitlab-org/gitlab/-/issues/333678',
|
||||
# mostly impacts testing as it makes small groups import slower
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Configure', :orchestrated, :mattermost do
|
||||
describe 'Mattermost support' do
|
||||
it 'user creates a group with a mattermost team', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/665' do
|
||||
it 'user creates a group with a mattermost team', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1459' do
|
||||
Flow::Login.sign_in
|
||||
Page::Main::Menu.perform(&:go_to_groups)
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ module QA
|
|||
end
|
||||
|
||||
it 'transfers a subgroup to another group',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1724' do
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1828' do
|
||||
Page::Group::Menu.perform(&:click_group_general_settings_item)
|
||||
Page::Group::Settings::General.perform do |general|
|
||||
general.transfer_group(target_group.path)
|
||||
|
|
|
@ -44,7 +44,7 @@ module QA
|
|||
end
|
||||
|
||||
it 'user transfers a project between groups',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1703' do
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1592' do
|
||||
# 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)
|
||||
|
|
|
@ -33,7 +33,7 @@ module QA
|
|||
group.add_member(developer_user, Resource::Members::AccessLevel::DEVELOPER)
|
||||
end
|
||||
|
||||
it 'allows using 2FA recovery code once only', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/972' do
|
||||
it 'allows using 2FA recovery code once only', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1271' do
|
||||
recovery_code = enable_2fa_for_user_and_fetch_recovery_code(developer_user)
|
||||
|
||||
Flow::Login.sign_in(as: developer_user, skip_page_validation: true)
|
||||
|
|
|
@ -19,7 +19,7 @@ module QA
|
|||
enable_2fa_for_user(user)
|
||||
end
|
||||
|
||||
it 'allows 2FA code recovery via ssh' do
|
||||
it 'allows 2FA code recovery via ssh', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1227' do
|
||||
recovery_code = Support::SSH.perform do |ssh|
|
||||
ssh.key = ssh_key
|
||||
ssh.uri = address.gsub(/(?<=:)(#{uri.port})/, ssh_port)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Manage', :smoke do
|
||||
describe 'basic user login' do
|
||||
it 'user logs in using basic credentials and logs out', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1690' do
|
||||
it 'user logs in using basic credentials and logs out', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1578' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
Page::Main::Menu.perform do |menu|
|
||||
|
|
|
@ -35,7 +35,7 @@ module QA
|
|||
group.add_member(developer_user, Resource::Members::AccessLevel::DEVELOPER)
|
||||
end
|
||||
|
||||
it 'allows enforcing 2FA via UI and logging in with 2FA', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/898' do
|
||||
it 'allows enforcing 2FA via UI and logging in with 2FA', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1320' do
|
||||
enforce_two_factor_authentication_on_group(group)
|
||||
|
||||
enable_two_factor_authentication_for_user(developer_user)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Manage', :orchestrated, :ldap_no_tls, :ldap_tls do
|
||||
describe 'LDAP login' do
|
||||
it 'user logs into GitLab using LDAP credentials', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/668' do
|
||||
it 'user logs into GitLab using LDAP credentials', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1456' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
Page::Main::Menu.perform do |menu|
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Manage', :orchestrated, :mattermost do
|
||||
describe 'Mattermost login' do
|
||||
it 'user logs into Mattermost using GitLab OAuth', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/666' do
|
||||
it 'user logs into Mattermost using GitLab OAuth', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1458' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
Support::Retrier.retry_on_exception do
|
||||
|
|
|
@ -5,7 +5,7 @@ module QA
|
|||
describe 'Instance wide SAML SSO' do
|
||||
it(
|
||||
'user logs in to gitlab with SAML SSO',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/671'
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1453'
|
||||
) do
|
||||
Runtime::Browser.visit(:gitlab, Page::Main::Login)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ module QA
|
|||
end
|
||||
|
||||
RSpec.describe 'Manage', :skip_signup_disabled, :requires_admin do
|
||||
describe 'while LDAP is enabled', :orchestrated, :ldap_no_tls, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/935' do
|
||||
describe 'while LDAP is enabled', :orchestrated, :ldap_no_tls, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1300' do
|
||||
before do
|
||||
# When LDAP is enabled, a previous test might have created a token for the LDAP 'tanuki' user who is not an admin
|
||||
# So we need to set it to nil in order to create a new token for admin user so that we are able to set_application_settings
|
||||
|
@ -39,7 +39,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
describe 'standard', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/936' do
|
||||
describe 'standard', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1652' do
|
||||
context 'when admin approval is not required' do
|
||||
before(:all) do
|
||||
set_require_admin_approval_after_user_signup_via_api(false)
|
||||
|
@ -66,7 +66,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'allows recreating with same credentials', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/937' do
|
||||
it 'allows recreating with same credentials', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1651' do
|
||||
expect(Page::Main::Menu.perform(&:signed_in?)).to be_falsy
|
||||
|
||||
Flow::Login.sign_in(as: user, skip_page_validation: true)
|
||||
|
@ -106,7 +106,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'allows user login after approval', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1076' do
|
||||
it 'allows user login after approval', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1639' do
|
||||
expect(page).to have_text(signed_up_waiting_approval_text)
|
||||
|
||||
Flow::Login.sign_in(as: @user, skip_page_validation: true)
|
||||
|
|
|
@ -7,7 +7,7 @@ module QA
|
|||
Runtime::Feature.enable(:invite_members_group_modal)
|
||||
end
|
||||
|
||||
it 'user adds project member', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/482' do
|
||||
it 'user adds project member', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1543' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
user = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
|
||||
|
|
|
@ -21,7 +21,7 @@ module QA
|
|||
project
|
||||
end
|
||||
|
||||
context 'in group', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1857' do
|
||||
context 'in group', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1620' do
|
||||
let(:project_name) { "project-in-group-#{SecureRandom.hex(8)}" }
|
||||
let(:project) do
|
||||
Resource::Project.fabricate_via_browser_ui! do |project|
|
||||
|
@ -33,7 +33,7 @@ module QA
|
|||
it_behaves_like 'successful project creation'
|
||||
end
|
||||
|
||||
context 'in personal namespace', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1888' do
|
||||
context 'in personal namespace', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1914' do
|
||||
let(:project_name) { "project-in-personal-namespace-#{SecureRandom.hex(8)}" }
|
||||
let(:project) do
|
||||
Resource::Project.fabricate_via_browser_ui! do |project|
|
||||
|
|
|
@ -39,13 +39,13 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
context 'when logged in as a new user', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1693' do
|
||||
context 'when logged in as a new user', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1549' do
|
||||
it_behaves_like 'loads all images' do
|
||||
let(:new_user) { @new_user }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when logged in as a new admin', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1727' do
|
||||
context 'when logged in as a new admin', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1550' do
|
||||
it_behaves_like 'loads all images' do
|
||||
let(:new_user) { @new_admin }
|
||||
end
|
||||
|
|
|
@ -40,7 +40,7 @@ module QA
|
|||
user.remove_via_api!
|
||||
end
|
||||
|
||||
it 'imports a GitHub repo', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1762' do
|
||||
it 'imports a GitHub repo', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1607' do
|
||||
Page::Project::Import::Github.perform do |import_page|
|
||||
import_page.add_personal_access_token(Runtime::Env.github_access_token)
|
||||
import_page.import!(github_repo, group.full_path, imported_project_name)
|
||||
|
|
|
@ -5,7 +5,7 @@ module QA
|
|||
describe 'Project access tokens' do
|
||||
let(:project_access_token) {QA::Resource::ProjectAccessToken.fabricate_via_browser_ui!}
|
||||
|
||||
it 'can be created and revoked via the UI' do
|
||||
it 'can be created and revoked via the UI', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1832' do
|
||||
expect(project_access_token.token).not_to be_nil
|
||||
|
||||
project_access_token.revoke_via_ui!
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Manage' do
|
||||
describe 'Project activity' do
|
||||
it 'user creates an event in the activity page upon Git push', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/407' do
|
||||
it 'user creates an event in the activity page upon Git push', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1591' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
project = Resource::Repository::ProjectPush.fabricate! do |push|
|
||||
|
|
|
@ -61,7 +61,7 @@ module QA
|
|||
user_api_client.personal_access_token
|
||||
end
|
||||
|
||||
it 'can be followed and their activity seen', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1773' do
|
||||
it 'can be followed and their activity seen', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1842' do
|
||||
Flow::Login.sign_in
|
||||
page.visit Runtime::Scenario.gitlab_address + "/#{user.username}"
|
||||
Page::User::Show.perform(&:click_follow_user_link)
|
||||
|
|
|
@ -39,7 +39,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'is not allowed to edit the project files', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1663' do
|
||||
it 'is not allowed to edit the project files', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1709' do
|
||||
Flow::Login.sign_in(as: user)
|
||||
project.visit!
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'is received by a user for project invitation', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/676' do
|
||||
it 'is received by a user for project invitation', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1448' do
|
||||
project.visit!
|
||||
|
||||
Page::Project::Menu.perform(&:click_members)
|
||||
|
|
|
@ -33,7 +33,7 @@ module QA
|
|||
user&.remove_via_api!
|
||||
end
|
||||
|
||||
it 'mentions a user in a comment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/452' do
|
||||
it 'mentions a user in a comment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1559' do
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
show.select_all_activities_filter
|
||||
show.comment("cc-ing you here @#{user.username}")
|
||||
|
|
|
@ -13,7 +13,7 @@ module QA
|
|||
issue.visit!
|
||||
end
|
||||
|
||||
it 'collapses and expands reply for comments in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1163' do
|
||||
it 'collapses and expands reply for comments in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1189' do
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
show.select_all_activities_filter
|
||||
show.start_discussion('My first discussion')
|
||||
|
|
|
@ -9,7 +9,7 @@ module QA
|
|||
Resource::Issue.fabricate_via_api!.visit!
|
||||
end
|
||||
|
||||
it 'comments on an issue and edits the comment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1151' do
|
||||
it 'comments on an issue and edits the comment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1200' do
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
first_version_of_comment = 'First version of the comment'
|
||||
second_version_of_comment = 'Second version of the comment'
|
||||
|
|
|
@ -9,7 +9,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'creates an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1793' do
|
||||
it 'creates an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1185' do
|
||||
issue = Resource::Issue.fabricate_via_browser_ui!
|
||||
|
||||
Page::Project::Menu.perform(&:click_issues)
|
||||
|
@ -19,7 +19,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'closes an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1792' do
|
||||
it 'closes an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1222' do
|
||||
closed_issue.visit!
|
||||
|
||||
Page::Project::Issue::Show.perform do |issue_page|
|
||||
|
@ -51,7 +51,7 @@ module QA
|
|||
# The following example is excluded from running in `review-qa-smoke` job
|
||||
# as it proved to be flaky when running against Review App
|
||||
# See https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/11568#note_621999351
|
||||
it 'comments on an issue with an attachment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1742', except: { job: 'review-qa-smoke' } do
|
||||
it 'comments on an issue with an attachment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1599', except: { job: 'review-qa-smoke' } do
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
show.comment('See attached image for scale', attachment: file_to_attach)
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'creates an issue via custom template', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1229' do
|
||||
it 'creates an issue via custom template', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1612' do
|
||||
Resource::Issue.fabricate_via_browser_ui! do |issue|
|
||||
issue.project = template_project
|
||||
issue.template = template_name
|
||||
|
|
|
@ -22,7 +22,7 @@ module QA
|
|||
Page::Project::Menu.perform(&:click_issues)
|
||||
end
|
||||
|
||||
it 'successfully exports issues list as CSV', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1141' do
|
||||
it 'successfully exports issues list as CSV', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1210' do
|
||||
Page::Project::Issue::Index.perform do |index|
|
||||
index.click_export_as_csv_button
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ module QA
|
|||
Resource::Issue.fabricate_via_api!.visit!
|
||||
end
|
||||
|
||||
it 'filters comments and activities in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/425' do
|
||||
it 'filters comments and activities in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1577' do
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
my_own_comment = "My own comment"
|
||||
made_the_issue_confidential = "made the issue confidential"
|
||||
|
|
|
@ -13,7 +13,7 @@ module QA
|
|||
end.project.visit!
|
||||
end
|
||||
|
||||
it 'shows issue suggestions when creating a new issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1175' do
|
||||
it 'shows issue suggestions when creating a new issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1179' do
|
||||
Page::Project::Show.perform(&:go_to_new_issue)
|
||||
Page::Project::Issue::New.perform do |new_page|
|
||||
new_page.fill_title("issue")
|
||||
|
|
|
@ -14,7 +14,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'imports issues from Jira', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/896' do
|
||||
it 'imports issues from Jira', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1321' do
|
||||
set_up_jira_integration
|
||||
import_jira_issues
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ module QA
|
|||
end.visit!
|
||||
end
|
||||
|
||||
it 'mentions another user in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1166' do
|
||||
it 'mentions another user in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1186' do
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
at_username = "@#{user.username}"
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ module QA
|
|||
Runtime::Feature.disable(:invite_members_group_modal, project: project)
|
||||
end
|
||||
|
||||
it 'update without refresh', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1048' do
|
||||
it 'update without refresh', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1644' do
|
||||
issue = Resource::Issue.fabricate_via_api! do |issue|
|
||||
issue.project = project
|
||||
issue.assignee_ids = [user1.id]
|
||||
|
|
|
@ -13,7 +13,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'focuses on issue board', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1176' do
|
||||
it 'focuses on issue board', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1178' do
|
||||
project.visit!
|
||||
|
||||
Page::Project::Menu.perform(&:go_to_boards)
|
||||
|
|
|
@ -14,7 +14,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'creates a group milestone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1148' do
|
||||
it 'creates a group milestone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1203' do
|
||||
group_milestone = Resource::GroupMilestone.fabricate_via_browser_ui! do |milestone|
|
||||
milestone.title = title
|
||||
milestone.description = description
|
||||
|
|
|
@ -14,7 +14,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'creates a project milestone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1165' do
|
||||
it 'creates a project milestone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1187' do
|
||||
project_milestone = Resource::ProjectMilestone.fabricate_via_browser_ui! do |milestone|
|
||||
milestone.title = title
|
||||
milestone.description = description
|
||||
|
|
|
@ -25,7 +25,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'relates and unrelates one issue to/from another', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1172' do
|
||||
it 'relates and unrelates one issue to/from another', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1180' do
|
||||
issue_1.visit!
|
||||
|
||||
Page::Project::Issue::Show.perform do |show|
|
||||
|
|
|
@ -16,7 +16,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'comments with mention on a discussion in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1753' do
|
||||
it 'comments with mention on a discussion in an issue', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1816' do
|
||||
Runtime::Env.transient_trials.times do |i|
|
||||
QA::Runtime::Logger.info("Transient bug test action - Trial #{i}")
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'user adds a design and annotates it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1692' do
|
||||
it 'user adds a design and annotates it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1290' do
|
||||
issue.visit!
|
||||
|
||||
Page::Project::Issue::Show.perform do |issue|
|
||||
|
|
|
@ -23,7 +23,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'user archives a design', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1761' do
|
||||
it 'user archives a design', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1812' do
|
||||
third_design.issue.visit!
|
||||
|
||||
Page::Project::Issue::Show.perform do |issue|
|
||||
|
|
|
@ -13,7 +13,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'user adds a design and modifies it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1760' do
|
||||
it 'user adds a design and modifies it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1813' do
|
||||
design.issue.visit!
|
||||
|
||||
Page::Project::Issue::Show.perform do |issue|
|
||||
|
|
|
@ -25,7 +25,7 @@ module QA
|
|||
setup_jenkins
|
||||
end
|
||||
|
||||
it 'integrates and displays build status for MR pipeline in GitLab', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/719' do
|
||||
it 'integrates and displays build status for MR pipeline in GitLab', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1410' do
|
||||
login_to_gitlab
|
||||
|
||||
setup_project_integration_with_jenkins
|
||||
|
|
|
@ -36,7 +36,7 @@ module QA
|
|||
expect(page).not_to have_text("Requests to the local network are not allowed")
|
||||
end
|
||||
|
||||
it 'closes an issue via pushing a commit', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/827' do
|
||||
it 'closes an issue via pushing a commit', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1362' do
|
||||
issue_key = Vendor::Jira::JiraAPI.perform do |jira_api|
|
||||
jira_api.create_issue(jira_project_key)
|
||||
end
|
||||
|
@ -46,7 +46,7 @@ module QA
|
|||
expect_issue_done(issue_key)
|
||||
end
|
||||
|
||||
it 'closes an issue via a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/828' do
|
||||
it 'closes an issue via a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1361' do
|
||||
issue_key = Vendor::Jira::JiraAPI.perform do |jira_api|
|
||||
jira_api.create_issue(jira_project_key)
|
||||
end
|
||||
|
|
|
@ -22,7 +22,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1616' do
|
||||
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1836' do
|
||||
feature_mr.visit!
|
||||
|
||||
Page::MergeRequest::Show.perform do |merge_request|
|
||||
|
|
|
@ -29,7 +29,7 @@ module QA
|
|||
commit.visit!
|
||||
end
|
||||
|
||||
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1752' do
|
||||
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1817' do
|
||||
Page::Project::Commit::Show.perform(&:cherry_pick_commit)
|
||||
Page::MergeRequest::New.perform(&:create_merge_request)
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ module QA
|
|||
it(
|
||||
'creates a basic merge request',
|
||||
:smoke,
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1850'
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1590'
|
||||
) do
|
||||
Resource::MergeRequest.fabricate_via_browser_ui! do |merge_request|
|
||||
merge_request.project = project
|
||||
|
@ -35,7 +35,7 @@ module QA
|
|||
|
||||
it(
|
||||
'creates a merge request with a milestone and label',
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/514'
|
||||
testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1542'
|
||||
) do
|
||||
gitlab_account_username = "@#{Runtime::User.username}"
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'creates a merge request via custom template', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1230' do
|
||||
it 'creates a merge request via custom template', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1680' do
|
||||
Resource::MergeRequest.fabricate_via_browser_ui! do |merge_request|
|
||||
merge_request.project = template_project
|
||||
merge_request.title = merge_request_title
|
||||
|
|
|
@ -4,7 +4,7 @@ module QA
|
|||
RSpec.describe 'Create', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/332588', type: :investigating } do
|
||||
describe 'Merge request creation from fork' do
|
||||
# TODO: Please add this back to :smoke suite as soon as https://gitlab.com/gitlab-org/gitlab/-/issues/332588 is addressed
|
||||
it 'can merge feature branch fork to mainline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1701' do
|
||||
it 'can merge feature branch fork to mainline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1305' do
|
||||
merge_request = Resource::MergeRequestFromFork.fabricate_via_browser_ui! do |merge_request|
|
||||
merge_request.fork_branch = 'feature-branch'
|
||||
end
|
||||
|
|
|
@ -87,11 +87,11 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
context 'when merging once', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1684' do
|
||||
context 'when merging once', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1834' do
|
||||
it_behaves_like 'merge when pipeline succeeds'
|
||||
end
|
||||
|
||||
context 'when merging several times', :transient, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1684' do
|
||||
context 'when merging several times', :transient, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1917' do
|
||||
it_behaves_like 'merge when pipeline succeeds', repeat: Runtime::Env.transient_trials
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Create', quarantine: { only: { subdomain: :staging }, issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/323990', type: :flaky } do
|
||||
describe 'Merge request rebasing' do
|
||||
it 'user rebases source branch of merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1800' do
|
||||
it 'user rebases source branch of merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1596' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
project = Resource::Project.fabricate_via_api! do |project|
|
||||
|
|
|
@ -27,7 +27,7 @@ module QA
|
|||
commit.visit!
|
||||
end
|
||||
|
||||
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1784' do
|
||||
it 'creates a merge request', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1807' do
|
||||
Page::Project::Commit::Show.perform(&:revert_commit)
|
||||
Page::MergeRequest::New.perform(&:create_merge_request)
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'can be reverted', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1745' do
|
||||
it 'can be reverted', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1818' do
|
||||
revertable_merge_request.visit!
|
||||
|
||||
Page::MergeRequest::Show.perform do |merge_request|
|
||||
|
|
|
@ -31,7 +31,7 @@ module QA
|
|||
merge_request.visit!
|
||||
end
|
||||
|
||||
it 'user squashes commits while merging', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/418' do
|
||||
it 'user squashes commits while merging', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1583' do
|
||||
Page::MergeRequest::Show.perform do |merge_request_page|
|
||||
merge_request_page.retry_on_exception(reload: true) do
|
||||
expect(merge_request_page).to have_text('to be squashed')
|
||||
|
|
|
@ -46,7 +46,7 @@ module QA
|
|||
merge_request.visit!
|
||||
end
|
||||
|
||||
it 'applies multiple suggestions', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1177' do
|
||||
it 'applies multiple suggestions', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1838' do
|
||||
Page::MergeRequest::Show.perform do |merge_request|
|
||||
merge_request.click_diffs_tab
|
||||
4.times { merge_request.add_suggestion_to_batch }
|
||||
|
|
|
@ -43,7 +43,7 @@ module QA
|
|||
merge_request.visit!
|
||||
end
|
||||
|
||||
it 'applies a single suggestion with a custom message' do
|
||||
it 'applies a single suggestion with a custom message', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1815' do
|
||||
Page::MergeRequest::Show.perform do |merge_request|
|
||||
merge_request.click_diffs_tab
|
||||
merge_request.apply_suggestion_with_message(commit_message)
|
||||
|
|
|
@ -15,7 +15,7 @@ module QA
|
|||
merge_request.visit!
|
||||
end
|
||||
|
||||
it 'views the merge request email patches', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1689' do
|
||||
it 'views the merge request email patches', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1585' do
|
||||
Page::MergeRequest::Show.perform(&:view_email_patches)
|
||||
|
||||
expect(page.text).to start_with('From')
|
||||
|
@ -23,7 +23,7 @@ module QA
|
|||
expect(page).to have_content("diff --git a/#{merge_request.file_name} b/#{merge_request.file_name}")
|
||||
end
|
||||
|
||||
it 'views the merge request plain diff', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/417' do
|
||||
it 'views the merge request plain diff', :can_use_large_setup, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1584' do
|
||||
Page::MergeRequest::Show.perform(&:view_plain_diff)
|
||||
|
||||
expect(page.text).to start_with('diff')
|
||||
|
|
|
@ -32,7 +32,7 @@ module QA
|
|||
merge_request.visit!
|
||||
end
|
||||
|
||||
it 'views the merge-ref diff by default' do
|
||||
it 'views the merge-ref diff by default', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1902' do
|
||||
Page::MergeRequest::Show.perform do |mr_page|
|
||||
mr_page.click_diffs_tab
|
||||
mr_page.click_target_version_dropdown
|
||||
|
@ -57,7 +57,7 @@ module QA
|
|||
merge_request.visit!
|
||||
end
|
||||
|
||||
it 'views the merge-base diff by default' do
|
||||
it 'views the merge-base diff by default', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1903' do
|
||||
Page::MergeRequest::Show.perform do |mr_page|
|
||||
mr_page.click_diffs_tab
|
||||
mr_page.click_target_version_dropdown
|
||||
|
|
|
@ -61,7 +61,7 @@ module QA
|
|||
project.visit!
|
||||
end
|
||||
|
||||
it 'lists branches correctly after CRUD operations', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1688' do
|
||||
it 'lists branches correctly after CRUD operations', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1588' do
|
||||
Page::Project::Menu.perform(&:go_to_repository_branches)
|
||||
|
||||
expect(page).to have_content(master_branch)
|
||||
|
|
|
@ -16,7 +16,7 @@ module QA
|
|||
end
|
||||
|
||||
context 'when branch name contains slash, hash, double dash, and capital letter' do
|
||||
it 'renders repository file tree correctly', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1780' do
|
||||
it 'renders repository file tree correctly', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1809' do
|
||||
Resource::Repository::Commit.fabricate_via_api! do |commit|
|
||||
commit.project = project
|
||||
commit.branch = branch_name
|
||||
|
|
|
@ -28,7 +28,7 @@ module QA
|
|||
project.wait_for_push_new_branch
|
||||
end
|
||||
|
||||
it 'user performs a deep clone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/475' do
|
||||
it 'user performs a deep clone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1546' do
|
||||
Git::Repository.perform do |repository|
|
||||
repository.uri = project.repository_http_location.uri
|
||||
repository.use_default_credentials
|
||||
|
@ -39,7 +39,7 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
it 'user performs a shallow clone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/411' do
|
||||
it 'user performs a shallow clone', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1589' do
|
||||
Git::Repository.perform do |repository|
|
||||
repository.uri = project.repository_http_location.uri
|
||||
repository.use_default_credentials
|
||||
|
|
|
@ -11,7 +11,7 @@ module QA
|
|||
Flow::Login.sign_in
|
||||
end
|
||||
|
||||
it 'user creates a file via the Web', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1093' do
|
||||
it 'user creates a file via the Web', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1633' do
|
||||
Resource::File.fabricate_via_browser_ui! do |file|
|
||||
file.name = file_name
|
||||
file.content = file_content
|
||||
|
|
|
@ -12,7 +12,7 @@ module QA
|
|||
file.visit!
|
||||
end
|
||||
|
||||
it 'user deletes a file via the Web', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1095' do
|
||||
it 'user deletes a file via the Web', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1631' do
|
||||
Page::File::Show.perform do |file|
|
||||
file.click_delete
|
||||
file.add_commit_message(commit_message_for_delete)
|
||||
|
|
|
@ -13,7 +13,7 @@ module QA
|
|||
file.visit!
|
||||
end
|
||||
|
||||
it 'user edits a file via the Web', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1094' do
|
||||
it 'user edits a file via the Web', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1632' do
|
||||
Page::File::Show.perform(&:click_edit)
|
||||
|
||||
Page::File::Form.perform do |file|
|
||||
|
|
|
@ -16,7 +16,7 @@ module QA
|
|||
end
|
||||
|
||||
context 'when file name starts with a dash and contains hash, semicolon, colon, and question mark' do
|
||||
it 'renders repository file tree correctly', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1779' do
|
||||
it 'renders repository file tree correctly', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1810' do
|
||||
Resource::File.fabricate_via_api! do |file|
|
||||
file.project = project
|
||||
file.commit_message = 'Add new file'
|
||||
|
|
|
@ -23,7 +23,7 @@ module QA
|
|||
parent_project.add_member(user)
|
||||
end
|
||||
|
||||
it 'creates a 2nd fork after moving the parent project', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/713' do
|
||||
it 'creates a 2nd fork after moving the parent project', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1413' do
|
||||
Flow::Login.sign_in(as: user)
|
||||
|
||||
fork_project.visit!
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
module QA
|
||||
RSpec.describe 'Create' do
|
||||
describe 'Push over HTTP using Git protocol version 2', :requires_git_protocol_v2 do
|
||||
it 'user pushes to the repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/469' do
|
||||
it 'user pushes to the repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1548' do
|
||||
Flow::Login.sign_in
|
||||
|
||||
# Create a project to push to
|
||||
|
|
|
@ -27,7 +27,7 @@ module QA
|
|||
Page::Main::Menu.perform(&:sign_out_if_signed_in)
|
||||
end
|
||||
|
||||
it 'user pushes to the repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1763' do
|
||||
it 'user pushes to the repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/quality/test_cases/1606' do
|
||||
project = Resource::Project.fabricate_via_api! do |project|
|
||||
project.name = 'git-protocol-project'
|
||||
end
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue