Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Tatuya Kamada
gitlab-ce
Commits
5ef567e3
Commit
5ef567e3
authored
Jul 28, 2016
by
Douglas Barbosa Alexandre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Does not allow Backlog/Done lists to be removed
parent
4180a15c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
45 additions
and
15 deletions
+45
-15
app/services/boards/lists/destroy_service.rb
app/services/boards/lists/destroy_service.rb
+2
-0
spec/factories/lists.rb
spec/factories/lists.rb
+12
-0
spec/services/boards/lists/destroy_service_spec.rb
spec/services/boards/lists/destroy_service_spec.rb
+31
-15
No files found.
app/services/boards/lists/destroy_service.rb
View file @
5ef567e3
...
@@ -7,6 +7,8 @@ module Boards
...
@@ -7,6 +7,8 @@ module Boards
end
end
def
execute
def
execute
return
false
unless
list
.
label?
list
.
with_lock
do
list
.
with_lock
do
reorder_higher_lists
reorder_higher_lists
remove_list
remove_list
...
...
spec/factories/lists.rb
View file @
5ef567e3
...
@@ -4,4 +4,16 @@ FactoryGirl.define do
...
@@ -4,4 +4,16 @@ FactoryGirl.define do
label
label
sequence
(
:position
)
sequence
(
:position
)
end
end
factory
:backlog_list
,
parent: :list
do
list_type
:backlog
end
factory
:label_list
,
parent: :list
do
list_type
:label
end
factory
:done_list
,
parent: :list
do
list_type
:done
end
end
end
spec/services/boards/lists/destroy_service_spec.rb
View file @
5ef567e3
...
@@ -5,26 +5,42 @@ describe Boards::Lists::DestroyService, services: true do
...
@@ -5,26 +5,42 @@ describe Boards::Lists::DestroyService, services: true do
let
(
:project
)
{
create
(
:project_with_board
)
}
let
(
:project
)
{
create
(
:project_with_board
)
}
let
(
:board
)
{
project
.
board
}
let
(
:board
)
{
project
.
board
}
it
'removes list from board'
do
context
'when list type is label'
do
list
=
create
(
:list
,
board:
board
)
it
'removes list from board'
do
service
=
described_class
.
new
(
project
,
list_id:
list
.
id
)
list
=
create
(
:label_list
,
board:
board
)
service
=
described_class
.
new
(
project
,
list_id:
list
.
id
)
expect
{
service
.
execute
}.
to
change
(
board
.
lists
,
:count
).
by
(
-
1
)
end
it
'decrements position of higher lists'
do
list1
=
create
(
:backlog_list
,
board:
board
,
position:
1
)
list2
=
create
(
:label_list
,
board:
board
,
position:
2
)
list3
=
create
(
:label_list
,
board:
board
,
position:
3
)
list4
=
create
(
:label_list
,
board:
board
,
position:
4
)
list5
=
create
(
:done_list
,
board:
board
,
position:
5
)
described_class
.
new
(
project
,
list_id:
list2
.
id
).
execute
expect
{
service
.
execute
}.
to
change
(
board
.
lists
,
:count
).
by
(
-
1
)
expect
(
list1
.
reload
.
position
).
to
eq
1
expect
(
list3
.
reload
.
position
).
to
eq
2
expect
(
list4
.
reload
.
position
).
to
eq
3
expect
(
list5
.
reload
.
position
).
to
eq
4
end
end
end
it
'd
ecrements position of higher lists
'
do
it
'd
oes not remove list from board when list type is backlog
'
do
list
1
=
create
(
:list
,
board:
board
,
position:
1
)
list
=
create
(
:backlog_list
,
board:
board
)
list2
=
create
(
:list
,
board:
board
,
position:
2
)
service
=
described_class
.
new
(
project
,
list_id:
list
.
id
)
list3
=
create
(
:list
,
board:
board
,
position:
3
)
list4
=
create
(
:list
,
board:
board
,
position:
4
)
expect
{
service
.
execute
}.
not_to
change
(
board
.
lists
,
:count
)
list5
=
create
(
:list
,
board:
board
,
position:
5
)
end
described_class
.
new
(
project
,
list_id:
list2
.
id
).
execute
it
'does not remove list from board when list type is done'
do
list
=
create
(
:done_list
,
board:
board
)
service
=
described_class
.
new
(
project
,
list_id:
list
.
id
)
expect
(
list1
.
reload
.
position
).
to
eq
1
expect
{
service
.
execute
}.
not_to
change
(
board
.
lists
,
:count
)
expect
(
list3
.
reload
.
position
).
to
eq
2
expect
(
list4
.
reload
.
position
).
to
eq
3
expect
(
list5
.
reload
.
position
).
to
eq
4
end
end
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment