Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
34c146a1
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,发现更多精彩内容 >>
提交
34c146a1
编写于
9月 08, 2016
作者:
K
Katarzyna Kobierska
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add #can_reopen? and tests
上级
554baec9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
48 addition
and
24 deletion
+48
-24
app/helpers/merge_requests_helper.rb
app/helpers/merge_requests_helper.rb
+1
-1
app/models/merge_request.rb
app/models/merge_request.rb
+1
-3
app/views/projects/merge_requests/_discussion.html.haml
app/views/projects/merge_requests/_discussion.html.haml
+1
-1
spec/models/merge_request_spec.rb
spec/models/merge_request_spec.rb
+45
-19
未找到文件。
app/helpers/merge_requests_helper.rb
浏览文件 @
34c146a1
...
...
@@ -98,7 +98,7 @@ module MergeRequestsHelper
end
def
merge_request_button_visibility
(
merge_request
,
closed
)
return
'hidden'
if
merge_request
.
c
losed?
==
closed
||
(
merge_request
.
merged?
==
closed
&&
!
merge_request
.
closed?
)
||
merge_request
.
closed_without_fork
?
return
'hidden'
if
merge_request
.
c
an_reopen
?
end
def
merge_request_version_path
(
project
,
merge_request
,
merge_request_diff
,
start_sha
=
nil
)
...
...
app/models/merge_request.rb
浏览文件 @
34c146a1
...
...
@@ -328,10 +328,8 @@ class MergeRequest < ActiveRecord::Base
end
def
can_reopen?
return
false
if
closed_without_fork?
||
closed_without_source_project?
return
false
if
closed_without_fork?
||
closed_without_source_project?
||
merged?
return
true
if
closed?
# false
end
def
ensure_merge_request_diff
...
...
app/views/projects/merge_requests/_discussion.html.haml
浏览文件 @
34c146a1
...
...
@@ -2,7 +2,7 @@
-
if
can?
(
current_user
,
:update_merge_request
,
@merge_request
)
-
if
@merge_request
.
open?
=
link_to
'Close merge request'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :close
}),
method: :put
,
class:
"btn btn-nr btn-comment btn-close close-mr-link js-note-target-close"
,
title:
"Close merge request"
,
data:
{
original_text:
"Close merge request"
,
alternative_text:
"Comment & close merge request"
}
-
unless
@merge_request
.
open?
||
@merge_request
.
closed_without_fork
?
-
if
@merge_request
.
can_reopen
?
=
link_to
'Reopen merge request'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :reopen
}),
method: :put
,
class:
"btn btn-nr btn-comment btn-reopen reopen-mr-link js-note-target-reopen"
,
title:
"Reopen merge request"
,
data:
{
original_text:
"Reopen merge request"
,
alternative_text:
"Comment & reopen merge request"
}
%comment-and-resolve-btn
{
"inline-template"
=>
true
,
":discussion-id"
=>
""
}
%button
.btn.btn-nr.btn-default.append-right-10.js-comment-resolve-button
{
"v-if"
=>
"showButton"
,
type:
"submit"
,
data:
{
namespace_path:
"#{@merge_request.project.namespace.path}"
,
project_path:
"#{@merge_request.project.path}"
}
}
...
...
spec/models/merge_request_spec.rb
浏览文件 @
34c146a1
...
...
@@ -1039,24 +1039,24 @@ describe MergeRequest, models: true do
end
end
describe
"#closed_without_source_project?"
do
describe
'#closed_without_source_project?'
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:fork_project
)
{
create
(
:project
,
forked_from_project:
project
)
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:destroy_project
)
{
Projects
::
DestroyService
.
new
(
fork_project
,
user
,
{})
}
context
"when the merge request is closed"
do
context
'when the merge request is closed'
do
let
(
:closed_merge_request
)
do
create
(
:closed_merge_request
,
source_project:
fork_project
,
target_project:
project
)
end
it
"returns false if the source project exist"
do
it
'returns false if the source project exists'
do
expect
(
closed_merge_request
.
closed_without_source_project?
).
to
be_falsey
end
it
"returns true if the source project does not exist"
do
it
'returns true if the source project does not exist'
do
destroy_project
.
async_execute
closed_merge_request
.
reload
...
...
@@ -1064,29 +1064,55 @@ describe MergeRequest, models: true do
end
end
context
"when the merge request is open"
do
let
(
:open_merge_request
)
do
create
(
:merge_request
,
source_project:
fork_project
,
target_project:
project
)
end
it
"returns false"
do
expect
(
open_merge_request
.
closed_without_source_project?
).
to
be_falsey
context
'when the merge request is open'
do
it
'returns false'
do
expect
(
subject
.
closed_without_source_project?
).
to
be_falsey
end
end
end
describe
'#can_reopen?'
do
it
"returns true"
do
subject
.
close
binding
.
pry
context
'when the merge request is closed'
do
it
'returns true'
do
subject
.
close
expect
(
subject
.
can_reopen?
).
to
be_truthy
expect
(
subject
.
can_reopen?
).
to
be_truthy
end
context
'forked project'
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:fork_project
)
{
create
(
:project
,
forked_from_project:
project
)
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:merge_request
)
do
create
(
:closed_merge_request
,
source_project:
fork_project
,
target_project:
project
)
end
it
'returns false if unforked'
do
Projects
::
UnlinkForkService
.
new
(
fork_project
,
user
).
execute
expect
(
merge_request
.
reload
.
can_reopen?
).
to
be_falsey
end
it
'returns false if the source project is deleted'
do
Projects
::
DestroyService
.
new
(
fork_project
,
user
,
{}).
async_execute
expect
(
merge_request
.
reload
.
can_reopen?
).
to
be_falsey
end
it
'returnes false if the merge request is merged'
do
merge_request
.
update_attributes
(
state:
'merged'
)
expect
(
merge_request
.
reload
.
can_reopen?
).
to
be_falsey
end
end
end
it
"returns false"
do
expect
(
subject
.
can_reopen?
).
to
be_falsey
context
'when merge request is opened'
do
it
'returns false'
do
expect
(
subject
.
can_reopen?
).
to
be_falsey
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录