Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
2fc6cbed01
commit
940dc9bc92
|
|
@ -3,7 +3,6 @@
|
|||
Layout/SpaceInsideParens:
|
||||
Exclude:
|
||||
- 'spec/lib/banzai/filter/repository_link_filter_spec.rb'
|
||||
- 'spec/lib/feature/gitaly_spec.rb'
|
||||
- 'spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/entry/reports_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/entry/trigger_spec.rb'
|
||||
|
|
|
|||
|
|
@ -80,11 +80,12 @@ module Ci
|
|||
|
||||
def token_scope
|
||||
case attrs_from_token[:runner_type]
|
||||
when :instance_type
|
||||
Gitlab::Audit::InstanceScope.new
|
||||
when :project_type
|
||||
attrs_from_token[:projects]&.first
|
||||
when :group_type
|
||||
attrs_from_token[:groups]&.first
|
||||
# No scope for instance type
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -31162,6 +31162,7 @@ Project-level settings for product analytics provider.
|
|||
| <a id="projectpendingmemberapprovals"></a>`pendingMemberApprovals` **{warning-solid}** | [`MemberApprovalConnection`](#memberapprovalconnection) | **Introduced** in GitLab 17.3. **Status**: Experiment. Pending member promotions of the project. |
|
||||
| <a id="projectpermanentdeletiondate"></a>`permanentDeletionDate` **{warning-solid}** | [`String`](#string) | **Introduced** in GitLab 16.11. **Status**: Experiment. Date when project will be deleted if delayed project deletion is enabled. |
|
||||
| <a id="projectpipelinetriggers"></a>`pipelineTriggers` **{warning-solid}** | [`PipelineTriggerConnection`](#pipelinetriggerconnection) | **Introduced** in GitLab 16.3. **Status**: Experiment. List of pipeline trigger tokens. |
|
||||
| <a id="projectprereceivesecretdetectionenabled"></a>`preReceiveSecretDetectionEnabled` | [`Boolean`](#boolean) | Indicates whether Secret Push Protection is on or not for the project. |
|
||||
| <a id="projectpreventmergewithoutjiraissueenabled"></a>`preventMergeWithoutJiraIssueEnabled` | [`Boolean!`](#boolean) | Indicates if an associated issue from Jira is required. |
|
||||
| <a id="projectprintingmergerequestlinkenabled"></a>`printingMergeRequestLinkEnabled` | [`Boolean`](#boolean) | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line. |
|
||||
| <a id="projectproductanalyticsinstrumentationkey"></a>`productAnalyticsInstrumentationKey` **{warning-solid}** | [`String`](#string) | **Introduced** in GitLab 16.0. **Status**: Experiment. Product Analytics instrumentation key assigned to the project. |
|
||||
|
|
|
|||
|
|
@ -68,6 +68,8 @@ are very appreciative of the work done by translators and proofreaders!
|
|||
- Proofreaders needed.
|
||||
- Indonesian
|
||||
- Rahayu Rafika - [GitLab](https://gitlab.com/Vkfikaa), [Crowdin](https://crowdin.com/profile/rahayurafika_12)
|
||||
- Irish
|
||||
- Aindriú Mac Giolla Eoin - [GitLab](https://gitlab.com/aindriu80), [Crowdin](https://crowdin.com/profile/aindriu80)
|
||||
- Italian
|
||||
- Proofreaders needed.
|
||||
- Japanese
|
||||
|
|
|
|||
|
|
@ -548,6 +548,8 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
|
|||
let_it_be(:user2) { create(:user, name: 'Michael Scott') }
|
||||
let_it_be(:project) { create(:project, :public, developers: user) }
|
||||
let_it_be(:issue) { create(:issue, project: project, due_date: Date.today, title: "Fix bug") }
|
||||
let_it_be(:issue2) { create(:issue, project: project, due_date: Date.today, title: "Update gems") }
|
||||
let_it_be(:issue3) { create(:issue, project: project, due_date: Date.today, title: "Deploy feature") }
|
||||
|
||||
before do
|
||||
sign_in user
|
||||
|
|
@ -595,12 +597,11 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
|
|||
context 'when user has no done tasks' do
|
||||
before do
|
||||
create_todo(state: :pending)
|
||||
visit dashboard_todos_path(author_id: user.id)
|
||||
click_on 'Done'
|
||||
end
|
||||
|
||||
context 'with filters applied' do
|
||||
it 'shows a "no matches" message' do
|
||||
visit dashboard_todos_path(author_id: user.id, state: :done)
|
||||
expect(page).to have_content 'Sorry, your filter produced no results'
|
||||
expect_tab_nav
|
||||
end
|
||||
|
|
@ -608,7 +609,7 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
|
|||
|
||||
context 'with no filters applied' do
|
||||
it 'shows a "no done todos" message on the "Done" tab' do
|
||||
click_on 'Clear'
|
||||
visit dashboard_todos_path(state: :done)
|
||||
expect(page).to have_content 'There are no done to-do items yet'
|
||||
expect_tab_nav
|
||||
end
|
||||
|
|
@ -617,13 +618,11 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
|
|||
end
|
||||
|
||||
context 'when user has pending todos' do
|
||||
let!(:todo_assigned) { create(:todo, :assigned, :pending, user: user, project: project, target: issue, author: user2) }
|
||||
let!(:todo_marked) { create(:todo, :marked, :pending, user: user, project: project, target: issue, author: user) }
|
||||
let_it_be(:todo_assigned) { create(:todo, :assigned, :pending, user: user, project: project, target: issue, author: user2) }
|
||||
let_it_be(:todo_marked) { create(:todo, :marked, :pending, user: user, project: project, target: issue, author: user) }
|
||||
|
||||
before do
|
||||
sign_in(user)
|
||||
visit dashboard_todos_path
|
||||
wait_for_requests
|
||||
end
|
||||
|
||||
it 'allows to mark a pending todo as done and find it in the Done tab' do
|
||||
|
|
@ -642,8 +641,84 @@ RSpec.describe 'Dashboard Todos (Vue version)', :js, feature_category: :notifica
|
|||
end
|
||||
end
|
||||
|
||||
def create_todo(state:)
|
||||
create(:todo, :assigned, state, user: user, project: project, target: issue, author: user2)
|
||||
describe 'sorting' do
|
||||
let_it_be(:oldest_but_most_recently_updated) { create_todo(created_at: 3.days.ago, updated_at: 3.minutes.ago, target: issue) }
|
||||
let_it_be(:middle_old_and_middle_updated) { create_todo(created_at: 2.days.ago, updated_at: 2.hours.ago, target: issue2) }
|
||||
let_it_be(:newest_but_never_updated) { create_todo(created_at: 1.day.ago, updated_at: 1.day.ago, target: issue3) }
|
||||
|
||||
before do
|
||||
visit dashboard_todos_path
|
||||
end
|
||||
|
||||
it 'allows to change sort order and direction' do
|
||||
# default sort is by `created_at` (desc)
|
||||
expect(page).to have_content(
|
||||
/#{newest_but_never_updated.target.title}.*#{middle_old_and_middle_updated.target.title}.*#{oldest_but_most_recently_updated.target.title}/
|
||||
)
|
||||
|
||||
# change direction
|
||||
find('.sorting-direction-button').click
|
||||
expect(page).to have_content(
|
||||
/#{oldest_but_most_recently_updated.target.title}.*#{middle_old_and_middle_updated.target.title}.*#{newest_but_never_updated.target.title}/
|
||||
)
|
||||
|
||||
# change order
|
||||
click_on 'Created' # to open order dropdown
|
||||
find('li', text: 'Updated').click # to change to `updated_at`
|
||||
expect(page).to have_content(
|
||||
/#{newest_but_never_updated.target.title}.*#{middle_old_and_middle_updated.target.title}.*#{oldest_but_most_recently_updated.target.title}/
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'filtering' do
|
||||
let_it_be(:self_assigned) { create_todo(author: user, target: issue) }
|
||||
let_it_be(:self_marked) { create_todo(author: user, target: issue2, action: :marked) }
|
||||
let_it_be(:other_assigned) { create_todo(author: user2, target: issue3) }
|
||||
|
||||
before do
|
||||
visit dashboard_todos_path
|
||||
end
|
||||
|
||||
it 'allows to filter by auther, action etc' do
|
||||
find_by_testid('filtered-search-term').click
|
||||
find('li', text: 'Author').click
|
||||
find('li', text: user.username).click
|
||||
find_by_testid('search-button').click
|
||||
|
||||
expect(page).to have_content(self_assigned.target.title)
|
||||
expect(page).to have_content(self_marked.target.title)
|
||||
expect(page).not_to have_content(other_assigned.target.title)
|
||||
|
||||
find_by_testid('filtered-search-term').click
|
||||
find('li', text: 'Reason').click
|
||||
find('li', text: 'Marked').click
|
||||
find_by_testid('search-button').click
|
||||
|
||||
expect(page).not_to have_content(self_assigned.target.title)
|
||||
expect(page).to have_content(self_marked.target.title)
|
||||
expect(page).not_to have_content(other_assigned.target.title)
|
||||
|
||||
click_on 'Clear'
|
||||
|
||||
expect(page).to have_content(self_assigned.target.title)
|
||||
expect(page).to have_content(self_marked.target.title)
|
||||
expect(page).to have_content(other_assigned.target.title)
|
||||
end
|
||||
end
|
||||
|
||||
def create_todo(action: :assigned, state: :pending, created_at: nil, updated_at: nil, target: issue, author: user2)
|
||||
create(
|
||||
:todo,
|
||||
action,
|
||||
state: state,
|
||||
user: user,
|
||||
created_at: created_at,
|
||||
updated_at: updated_at,
|
||||
project: project,
|
||||
target: target,
|
||||
author: author
|
||||
)
|
||||
end
|
||||
|
||||
def expect_tab_nav
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ RSpec.describe Feature::Gitaly do
|
|||
end
|
||||
|
||||
describe ".group_actor" do
|
||||
let_it_be(:group) { create(:group ) }
|
||||
let_it_be(:group) { create(:group) }
|
||||
let_it_be(:project) { create(:project, group: group) }
|
||||
|
||||
context 'when project is passed in' do
|
||||
|
|
|
|||
Loading…
Reference in New Issue