Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
2b4ad9a8
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2b4ad9a8
编写于
5月 05, 2020
作者:
G
GitLab Bot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add latest changes from gitlab-org/gitlab@master
上级
b3cd77e9
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
120 addition
and
207 deletion
+120
-207
app/graphql/resolvers/issues_resolver.rb
app/graphql/resolvers/issues_resolver.rb
+3
-1
app/graphql/types/issuable_sort_enum.rb
app/graphql/types/issuable_sort_enum.rb
+2
-0
app/models/clusters/applications/knative.rb
app/models/clusters/applications/knative.rb
+2
-2
changelogs/unreleased/38296-graphql-add-milestone_due_asc-sort-for-issuables.yml
...8296-graphql-add-milestone_due_asc-sort-for-issuables.yml
+5
-0
changelogs/unreleased/sh-revert-codeowners-check.yml
changelogs/unreleased/sh-revert-codeowners-check.yml
+0
-5
db/structure.sql
db/structure.sql
+2
-2
doc/api/graphql/reference/gitlab_schema.graphql
doc/api/graphql/reference/gitlab_schema.graphql
+10
-0
doc/api/graphql/reference/gitlab_schema.json
doc/api/graphql/reference/gitlab_schema.json
+12
-0
spec/graphql/resolvers/issues_resolver_spec.rb
spec/graphql/resolvers/issues_resolver_spec.rb
+17
-0
spec/graphql/types/issuable_sort_enum_spec.rb
spec/graphql/types/issuable_sort_enum_spec.rb
+5
-1
spec/graphql/types/issue_sort_enum_spec.rb
spec/graphql/types/issue_sort_enum_spec.rb
+1
-1
spec/requests/api/graphql/project/issues_spec.rb
spec/requests/api/graphql/project/issues_spec.rb
+61
-195
未找到文件。
app/graphql/resolvers/issues_resolver.rb
浏览文件 @
2b4ad9a8
...
...
@@ -52,7 +52,9 @@ module Resolvers
type
Types
::
IssueType
,
null:
true
NON_STABLE_CURSOR_SORTS
=
%i[priority_asc priority_desc label_priority_asc label_priority_desc]
.
freeze
NON_STABLE_CURSOR_SORTS
=
%i[priority_asc priority_desc
label_priority_asc label_priority_desc
milestone_due_asc milestone_due_desc]
.
freeze
def
resolve
(
**
args
)
# The project could have been loaded in batch by `BatchLoader`.
...
...
app/graphql/types/issuable_sort_enum.rb
浏览文件 @
2b4ad9a8
...
...
@@ -9,5 +9,7 @@ module Types
value
'PRIORITY_DESC'
,
'Priority by descending order'
,
value: :priority_desc
value
'LABEL_PRIORITY_ASC'
,
'Label priority by ascending order'
,
value: :label_priority_asc
value
'LABEL_PRIORITY_DESC'
,
'Label priority by descending order'
,
value: :label_priority_desc
value
'MILESTONE_DUE_ASC'
,
'Milestone due date by ascending order'
,
value: :milestone_due_asc
value
'MILESTONE_DUE_DESC'
,
'Milestone due date by descending order'
,
value: :milestone_due_desc
end
end
app/models/clusters/applications/knative.rb
浏览文件 @
2b4ad9a8
...
...
@@ -4,8 +4,8 @@ module Clusters
module
Applications
class
Knative
<
ApplicationRecord
VERSION
=
'0.9.0'
REPOSITORY
=
'https://
storage.googleapis.com/triggermesh-charts
'
METRICS_CONFIG
=
'https://
storage.googleapis.com/triggermesh-charts/istio-metrics.ya
ml'
REPOSITORY
=
'https://
charts.gitlab.io
'
METRICS_CONFIG
=
'https://
gitlab.com/gitlab-org/charts/knative/-/blob/v0.9.0/vendor/istio-metrics.y
ml'
FETCH_IP_ADDRESS_DELAY
=
30
.
seconds
API_GROUPS_PATH
=
'config/knative/api_groups.yml'
...
...
changelogs/unreleased/38296-graphql-add-milestone_due_asc-sort-for-issuables.yml
0 → 100644
浏览文件 @
2b4ad9a8
---
title
:
GraphQL issue queries can now be sorted by milestone due date
merge_request
:
29992
author
:
type
:
added
changelogs/unreleased/sh-revert-codeowners-check.yml
已删除
100644 → 0
浏览文件 @
b3cd77e9
---
title
:
Revert CODEOWNERS validation of Web requests in diff check
merge_request
:
30936
author
:
type
:
fixed
db/structure.sql
浏览文件 @
2b4ad9a8
...
...
@@ -6183,9 +6183,9 @@ ALTER SEQUENCE public.sprints_id_seq OWNED BY public.sprints.id;
CREATE TABLE public.status_page_published_incidents (
id bigint NOT NULL,
issue_id bigint NOT NULL,
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL
updated_at timestamp with time zone NOT NULL,
issue_id bigint NOT NULL
);
CREATE SEQUENCE public.status_page_published_incidents_id_seq
...
...
doc/api/graphql/reference/gitlab_schema.graphql
浏览文件 @
2b4ad9a8
...
...
@@ -4677,6 +4677,16 @@ enum IssueSort {
"""
LABEL_PRIORITY_DESC
"""
Milestone
due
date
by
ascending
order
"""
MILESTONE_DUE_ASC
"""
Milestone
due
date
by
descending
order
"""
MILESTONE_DUE_DESC
"""
Priority
by
ascending
order
"""
...
...
doc/api/graphql/reference/gitlab_schema.json
浏览文件 @
2b4ad9a8
...
...
@@ -13272,6 +13272,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "MILESTONE_DUE_ASC",
"description": "Milestone due date by ascending order",
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "MILESTONE_DUE_DESC",
"description": "Milestone due date by descending order",
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "DUE_DATE_ASC",
"description": "Due date by ascending order",
...
...
spec/graphql/resolvers/issues_resolver_spec.rb
浏览文件 @
2b4ad9a8
...
...
@@ -190,6 +190,23 @@ describe Resolvers::IssuesResolver do
expect
(
resolve_issues
(
sort: :label_priority_desc
).
items
).
to
eq
([
label_issue2
,
label_issue3
,
label_issue1
,
label_issue4
])
end
end
context
'when sorting by milestone due date'
do
let_it_be
(
:project
)
{
create
(
:project
)
}
let_it_be
(
:early_milestone
)
{
create
(
:milestone
,
project:
project
,
due_date:
10
.
days
.
from_now
)
}
let_it_be
(
:late_milestone
)
{
create
(
:milestone
,
project:
project
,
due_date:
30
.
days
.
from_now
)
}
let_it_be
(
:milestone_issue1
)
{
create
(
:issue
,
project:
project
)
}
let_it_be
(
:milestone_issue2
)
{
create
(
:issue
,
project:
project
,
milestone:
early_milestone
)
}
let_it_be
(
:milestone_issue3
)
{
create
(
:issue
,
project:
project
,
milestone:
late_milestone
)
}
it
'sorts issues ascending'
do
expect
(
resolve_issues
(
sort: :milestone_due_asc
).
items
).
to
eq
([
milestone_issue2
,
milestone_issue3
,
milestone_issue1
])
end
it
'sorts issues descending'
do
expect
(
resolve_issues
(
sort: :milestone_due_desc
).
items
).
to
eq
([
milestone_issue3
,
milestone_issue2
,
milestone_issue1
])
end
end
end
it
'returns issues user can see'
do
...
...
spec/graphql/types/issuable_sort_enum_spec.rb
浏览文件 @
2b4ad9a8
...
...
@@ -6,6 +6,10 @@ describe Types::IssuableSortEnum do
it
{
expect
(
described_class
.
graphql_name
).
to
eq
(
'IssuableSort'
)
}
it
'exposes all the existing issuable sort values'
do
expect
(
described_class
.
values
.
keys
).
to
include
(
*
%w[PRIORITY_ASC PRIORITY_DESC]
)
expect
(
described_class
.
values
.
keys
).
to
include
(
*
%w[PRIORITY_ASC PRIORITY_DESC
LABEL_PRIORITY_ASC LABEL_PRIORITY_DESC
MILESTONE_DUE_ASC MILESTONE_DUE_DESC]
)
end
end
spec/graphql/types/issue_sort_enum_spec.rb
浏览文件 @
2b4ad9a8
...
...
@@ -9,7 +9,7 @@ describe GitlabSchema.types['IssueSort'] do
it
'exposes all the existing issue sort values'
do
expect
(
described_class
.
values
.
keys
).
to
include
(
*
%w[DUE_DATE_ASC DUE_DATE_DESC RELATIVE_POSITION_ASC
LABEL_PRIORITY_ASC LABEL_PRIORITY_DESC
]
*
%w[DUE_DATE_ASC DUE_DATE_DESC RELATIVE_POSITION_ASC]
)
end
end
spec/requests/api/graphql/project/issues_spec.rb
浏览文件 @
2b4ad9a8
...
...
@@ -118,138 +118,64 @@ describe 'getting an issue list for a project' do
end
describe
'sorting and pagination'
do
let
(
:start_cursor
)
{
graphql_data
[
'project'
][
'issues'
][
'pageInfo'
][
'startCursor'
]
}
let
(
:end_cursor
)
{
graphql_data
[
'project'
][
'issues'
][
'pageInfo'
][
'endCursor'
]
}
let_it_be
(
:data_path
)
{
[
:project
,
:issues
]
}
def
pagination_query
(
params
,
page_info
)
graphql_query_for
(
'project'
,
{
'fullPath'
=>
sort_project
.
full_path
},
"issues(
#{
params
}
) {
#{
page_info
}
edges { node { iid dueDate } } }"
)
end
def
pagination_results_data
(
data
)
data
.
map
{
|
issue
|
issue
.
dig
(
'node'
,
'iid'
).
to_i
}
end
context
'when sorting by due date'
do
let_it_be
(
:sort_project
)
{
create
(
:project
,
:public
)
}
let_it_be
(
:due_issue1
)
{
create
(
:issue
,
project:
sort_project
,
due_date:
3
.
days
.
from_now
)
}
let_it_be
(
:due_issue2
)
{
create
(
:issue
,
project:
sort_project
,
due_date:
nil
)
}
let_it_be
(
:due_issue3
)
{
create
(
:issue
,
project:
sort_project
,
due_date:
2
.
days
.
ago
)
}
let_it_be
(
:due_issue4
)
{
create
(
:issue
,
project:
sort_project
,
due_date:
nil
)
}
let_it_be
(
:due_issue5
)
{
create
(
:issue
,
project:
sort_project
,
due_date:
1
.
day
.
ago
)
}
let_it_be
(
:params
)
{
'sort: DUE_DATE_ASC'
}
def
query
(
issue_params
=
params
)
graphql_query_for
(
'project'
,
{
'fullPath'
=>
sort_project
.
full_path
},
<<~
ISSUES
issues(
#{
issue_params
}
) {
pageInfo {
endCursor
}
edges {
node {
iid
dueDate
}
}
}
ISSUES
)
end
before
do
post_graphql
(
query
,
current_user:
current_user
)
end
it_behaves_like
'a working graphql query'
context
'when ascending'
do
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
due_issue3
.
iid
,
due_issue5
.
iid
,
due_issue1
.
iid
,
due_issue4
.
iid
,
due_issue2
.
iid
])
end
context
'when paginating'
do
let
(
:params
)
{
'sort: DUE_DATE_ASC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
due_issue3
.
iid
,
due_issue5
.
iid
])
cursored_query
=
query
(
"sort: DUE_DATE_ASC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
([
due_issue1
.
iid
,
due_issue4
.
iid
,
due_issue2
.
iid
])
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'DUE_DATE_ASC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
due_issue3
.
iid
,
due_issue5
.
iid
,
due_issue1
.
iid
,
due_issue4
.
iid
,
due_issue2
.
iid
]
}
end
end
context
'when descending'
do
let
(
:params
)
{
'sort: DUE_DATE_DESC'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
due_issue1
.
iid
,
due_issue5
.
iid
,
due_issue3
.
iid
,
due_issue4
.
iid
,
due_issue2
.
iid
])
end
context
'when paginating'
do
let
(
:params
)
{
'sort: DUE_DATE_DESC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
due_issue1
.
iid
,
due_issue5
.
iid
])
cursored_query
=
query
(
"sort: DUE_DATE_DESC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
([
due_issue3
.
iid
,
due_issue4
.
iid
,
due_issue2
.
iid
])
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'DUE_DATE_DESC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
due_issue1
.
iid
,
due_issue5
.
iid
,
due_issue3
.
iid
,
due_issue4
.
iid
,
due_issue2
.
iid
]
}
end
end
end
context
'when sorting by relative position'
do
let_it_be
(
:sort_project
)
{
create
(
:project
,
:public
)
}
let_it_be
(
:relative_issue1
)
{
create
(
:issue
,
project:
sort_project
,
relative_position:
2000
)
}
let_it_be
(
:relative_issue2
)
{
create
(
:issue
,
project:
sort_project
,
relative_position:
nil
)
}
let_it_be
(
:relative_issue3
)
{
create
(
:issue
,
project:
sort_project
,
relative_position:
1000
)
}
let_it_be
(
:relative_issue4
)
{
create
(
:issue
,
project:
sort_project
,
relative_position:
nil
)
}
let_it_be
(
:relative_issue5
)
{
create
(
:issue
,
project:
sort_project
,
relative_position:
500
)
}
let_it_be
(
:params
)
{
'sort: RELATIVE_POSITION_ASC'
}
def
query
(
issue_params
=
params
)
graphql_query_for
(
'project'
,
{
'fullPath'
=>
sort_project
.
full_path
},
"issues(
#{
issue_params
}
) { pageInfo { endCursor} edges { node { iid dueDate } } }"
)
end
before
do
post_graphql
(
query
,
current_user:
current_user
)
end
it_behaves_like
'a working graphql query'
context
'when ascending'
do
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
relative_issue5
.
iid
,
relative_issue3
.
iid
,
relative_issue1
.
iid
,
relative_issue4
.
iid
,
relative_issue2
.
iid
])
end
context
'when paginating'
do
let
(
:params
)
{
'sort: RELATIVE_POSITION_ASC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
relative_issue5
.
iid
,
relative_issue3
.
iid
])
cursored_query
=
query
(
"sort: RELATIVE_POSITION_ASC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
([
relative_issue1
.
iid
,
relative_issue4
.
iid
,
relative_issue2
.
iid
])
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'RELATIVE_POSITION_ASC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
relative_issue5
.
iid
,
relative_issue3
.
iid
,
relative_issue1
.
iid
,
relative_issue4
.
iid
,
relative_issue2
.
iid
]
}
end
end
end
context
'when sorting by priority'
do
let_it_be
(
:sort_project
)
{
create
(
:project
,
:public
)
}
let_it_be
(
:early_milestone
)
{
create
(
:milestone
,
project:
sort_project
,
due_date:
10
.
days
.
from_now
)
}
let_it_be
(
:late_milestone
)
{
create
(
:milestone
,
project:
sort_project
,
due_date:
30
.
days
.
from_now
)
}
let_it_be
(
:priority_label1
)
{
create
(
:label
,
project:
sort_project
,
priority:
1
)
}
...
...
@@ -259,68 +185,25 @@ describe 'getting an issue list for a project' do
let_it_be
(
:priority_issue3
)
{
create
(
:issue
,
project:
sort_project
,
milestone:
early_milestone
)
}
let_it_be
(
:priority_issue4
)
{
create
(
:issue
,
project:
sort_project
)
}
let_it_be
(
:params
)
{
'sort: PRIORITY_ASC'
}
def
query
(
issue_params
=
params
)
graphql_query_for
(
'project'
,
{
'fullPath'
=>
sort_project
.
full_path
},
"issues(
#{
issue_params
}
) { pageInfo { endCursor} edges { node { iid dueDate } } }"
)
end
before
do
post_graphql
(
query
,
current_user:
current_user
)
end
it_behaves_like
'a working graphql query'
context
'when ascending'
do
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
priority_issue3
.
iid
,
priority_issue1
.
iid
,
priority_issue2
.
iid
,
priority_issue4
.
iid
])
end
context
'when paginating'
do
let
(
:params
)
{
'sort: PRIORITY_ASC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
priority_issue3
.
iid
,
priority_issue1
.
iid
])
cursored_query
=
query
(
"sort: PRIORITY_ASC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
([
priority_issue2
.
iid
,
priority_issue4
.
iid
])
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'PRIORITY_ASC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
priority_issue3
.
iid
,
priority_issue1
.
iid
,
priority_issue2
.
iid
,
priority_issue4
.
iid
]
}
end
end
context
'when descending'
do
let
(
:params
)
{
'sort: PRIORITY_DESC'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
priority_issue1
.
iid
,
priority_issue3
.
iid
,
priority_issue2
.
iid
,
priority_issue4
.
iid
])
end
context
'when paginating'
do
let
(
:params
)
{
'sort: PRIORITY_DESC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
([
priority_issue1
.
iid
,
priority_issue3
.
iid
])
cursored_query
=
query
(
"sort: PRIORITY_DESC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
([
priority_issue2
.
iid
,
priority_issue4
.
iid
])
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'PRIORITY_DESC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
priority_issue1
.
iid
,
priority_issue3
.
iid
,
priority_issue2
.
iid
,
priority_issue4
.
iid
]
}
end
end
end
context
'when sorting by label priority'
do
let_it_be
(
:sort_project
)
{
create
(
:project
,
:public
)
}
let_it_be
(
:label1
)
{
create
(
:label
,
project:
sort_project
,
priority:
1
)
}
let_it_be
(
:label2
)
{
create
(
:label
,
project:
sort_project
,
priority:
5
)
}
let_it_be
(
:label3
)
{
create
(
:label
,
project:
sort_project
,
priority:
10
)
}
...
...
@@ -329,61 +212,44 @@ describe 'getting an issue list for a project' do
let_it_be
(
:label_issue3
)
{
create
(
:issue
,
project:
sort_project
,
labels:
[
label1
,
label3
])
}
let_it_be
(
:label_issue4
)
{
create
(
:issue
,
project:
sort_project
)
}
let_it_be
(
:params
)
{
'sort: LABEL_PRIORITY_ASC'
}
def
query
(
issue_params
=
params
)
graphql_query_for
(
'project'
,
{
'fullPath'
=>
sort_project
.
full_path
},
"issues(
#{
issue_params
}
) { pageInfo { endCursor} edges { node { iid dueDate } } }"
)
context
'when ascending'
do
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'LABEL_PRIORITY_ASC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
label_issue3
.
iid
,
label_issue1
.
iid
,
label_issue2
.
iid
,
label_issue4
.
iid
]
}
end
end
before
do
post_graphql
(
query
,
current_user:
current_user
)
context
'when descending'
do
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'LABEL_PRIORITY_DESC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
label_issue2
.
iid
,
label_issue3
.
iid
,
label_issue1
.
iid
,
label_issue4
.
iid
]
}
end
end
end
it_behaves_like
'a working graphql query'
context
'when sorting by milestone due date'
do
let_it_be
(
:sort_project
)
{
create
(
:project
,
:public
)
}
let_it_be
(
:early_milestone
)
{
create
(
:milestone
,
project:
sort_project
,
due_date:
10
.
days
.
from_now
)
}
let_it_be
(
:late_milestone
)
{
create
(
:milestone
,
project:
sort_project
,
due_date:
30
.
days
.
from_now
)
}
let_it_be
(
:milestone_issue1
)
{
create
(
:issue
,
project:
sort_project
)
}
let_it_be
(
:milestone_issue2
)
{
create
(
:issue
,
project:
sort_project
,
milestone:
early_milestone
)
}
let_it_be
(
:milestone_issue3
)
{
create
(
:issue
,
project:
sort_project
,
milestone:
late_milestone
)
}
context
'when ascending'
do
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
[
label_issue3
.
iid
,
label_issue1
.
iid
,
label_issue2
.
iid
,
label_issue4
.
iid
]
end
context
'when paginating'
do
let
(
:params
)
{
'sort: LABEL_PRIORITY_ASC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
[
label_issue3
.
iid
,
label_issue1
.
iid
]
cursored_query
=
query
(
"sort: LABEL_PRIORITY_ASC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
[
label_issue2
.
iid
,
label_issue4
.
iid
]
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'MILESTONE_DUE_ASC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
milestone_issue2
.
iid
,
milestone_issue3
.
iid
,
milestone_issue1
.
iid
]
}
end
end
context
'when descending'
do
let
(
:params
)
{
'sort: LABEL_PRIORITY_DESC'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
[
label_issue2
.
iid
,
label_issue3
.
iid
,
label_issue1
.
iid
,
label_issue4
.
iid
]
end
context
'when paginating'
do
let
(
:params
)
{
'sort: LABEL_PRIORITY_DESC, first: 2'
}
it
'sorts issues'
do
expect
(
grab_iids
).
to
eq
[
label_issue2
.
iid
,
label_issue3
.
iid
]
cursored_query
=
query
(
"sort: LABEL_PRIORITY_DESC, after:
\"
#{
end_cursor
}
\"
"
)
post_graphql
(
cursored_query
,
current_user:
current_user
)
response_data
=
Gitlab
::
Json
.
parse
(
response
.
body
)[
'data'
][
'project'
][
'issues'
][
'edges'
]
expect
(
grab_iids
(
response_data
)).
to
eq
[
label_issue1
.
iid
,
label_issue4
.
iid
]
end
it_behaves_like
'sorted paginated query'
do
let
(
:sort_param
)
{
'MILESTONE_DUE_DESC'
}
let
(
:first_param
)
{
2
}
let
(
:expected_results
)
{
[
milestone_issue3
.
iid
,
milestone_issue2
.
iid
,
milestone_issue1
.
iid
]
}
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录