BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
bc36dfe8
Commit
bc36dfe8
authored
Mar 27, 2017
by
Sean McGivern
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'rename_done_to_closed' into 'master'
Change Done column to Closed in issue boards Closes #29420 See merge request !10198
parents
5f9bdcd0
1fb9de2b
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
66 additions
and
62 deletions
+66
-62
boards_bundle.js
app/assets/javascripts/boards/boards_bundle.js
+1
-1
remove_issue.js
...ets/javascripts/boards/components/sidebar/remove_issue.js
+1
-1
list.js
app/assets/javascripts/boards/models/list.js
+1
-1
boards_store.js
app/assets/javascripts/boards/stores/boards_store.js
+2
-2
board.rb
app/models/board.rb
+2
-2
list.rb
app/models/list.rb
+1
-1
create_service.rb
app/services/boards/create_service.rb
+1
-1
list_service.rb
app/services/boards/issues/list_service.rb
+1
-1
move_service.rb
app/services/boards/issues/move_service.rb
+2
-2
_board.html.haml
app/views/projects/boards/components/_board.html.haml
+2
-2
_board_list.html.haml
app/views/projects/boards/components/_board_list.html.haml
+1
-1
rename_done_to_closed.yml
changelogs/unreleased/rename_done_to_closed.yml
+4
-0
boards.md
doc/api/boards.md
+1
-1
boards.rb
spec/factories/boards.rb
+1
-1
lists.rb
spec/factories/lists.rb
+2
-2
boards_spec.rb
spec/features/boards/boards_spec.rb
+11
-11
new_issue_spec.rb
spec/features/boards/new_issue_spec.rb
+1
-1
list.json
spec/fixtures/api/schemas/list.json
+1
-1
boards_store_spec.js
spec/javascripts/boards/boards_store_spec.js
+2
-2
list_spec.rb
spec/models/list_spec.rb
+11
-11
create_service_spec.rb
spec/services/boards/create_service_spec.rb
+1
-1
list_service_spec.rb
spec/services/boards/issues/list_service_spec.rb
+3
-3
move_service_spec.rb
spec/services/boards/issues/move_service_spec.rb
+5
-5
destroy_service_spec.rb
spec/services/boards/lists/destroy_service_spec.rb
+4
-4
list_service_spec.rb
spec/services/boards/lists/list_service_spec.rb
+1
-1
move_service_spec.rb
spec/services/boards/lists/move_service_spec.rb
+3
-3
No files found.
app/assets/javascripts/boards/boards_bundle.js
View file @
bc36dfe8
...
...
@@ -79,7 +79,7 @@ $(() => {
resp
.
json
().
forEach
((
board
)
=>
{
const
list
=
Store
.
addList
(
board
);
if
(
list
.
type
===
'
done
'
)
{
if
(
list
.
type
===
'
closed
'
)
{
list
.
position
=
Infinity
;
}
});
...
...
app/assets/javascripts/boards/components/sidebar/remove_issue.js
View file @
bc36dfe8
...
...
@@ -48,7 +48,7 @@ import Vue from 'vue';
template
:
`
<div
class="block list"
v-if="list.type !== '
done
'">
v-if="list.type !== '
closed
'">
<button
class="btn btn-default btn-block"
type="button"
...
...
app/assets/javascripts/boards/models/list.js
View file @
bc36dfe8
...
...
@@ -10,7 +10,7 @@ class List {
this
.
position
=
obj
.
position
;
this
.
title
=
obj
.
title
;
this
.
type
=
obj
.
list_type
;
this
.
preset
=
[
'
done
'
,
'blank'
].
indexOf
(
this
.
type
)
>
-
1
;
this
.
preset
=
[
'
closed
'
,
'blank'
].
indexOf
(
this
.
type
)
>
-
1
;
this
.
page
=
1
;
this
.
loading
=
true
;
this
.
loadingMore
=
false
;
...
...
app/assets/javascripts/boards/stores/boards_store.js
View file @
bc36dfe8
...
...
@@ -45,7 +45,7 @@ import Cookies from 'js-cookie';
},
shouldAddBlankState
()
{
// Decide whether to add the blank state
return
!
(
this
.
state
.
lists
.
filter
(
list
=>
list
.
type
!==
'
done
'
)[
0
]);
return
!
(
this
.
state
.
lists
.
filter
(
list
=>
list
.
type
!==
'
closed
'
)[
0
]);
},
addBlankState
()
{
if
(
!
this
.
shouldAddBlankState
()
||
this
.
welcomeIsHidden
()
||
this
.
disabled
)
return
;
...
...
@@ -98,7 +98,7 @@ import Cookies from 'js-cookie';
issueTo
.
removeLabel
(
listFrom
.
label
);
}
if
(
listTo
.
type
===
'
done
'
)
{
if
(
listTo
.
type
===
'
closed
'
)
{
issueLists
.
forEach
((
list
)
=>
{
list
.
removeIssue
(
issue
);
});
...
...
app/models/board.rb
View file @
bc36dfe8
...
...
@@ -5,7 +5,7 @@ class Board < ActiveRecord::Base
validates
:project
,
presence:
true
def
done
_list
lists
.
merge
(
List
.
done
).
take
def
closed
_list
lists
.
merge
(
List
.
closed
).
take
end
end
app/models/list.rb
View file @
bc36dfe8
...
...
@@ -2,7 +2,7 @@ class List < ActiveRecord::Base
belongs_to
:board
belongs_to
:label
enum
list_type:
{
label:
1
,
done
:
2
}
enum
list_type:
{
label:
1
,
closed
:
2
}
validates
:board
,
:list_type
,
presence:
true
validates
:label
,
:position
,
presence:
true
,
if: :label?
...
...
app/services/boards/create_service.rb
View file @
bc36dfe8
...
...
@@ -12,7 +12,7 @@ module Boards
def
create_board!
board
=
project
.
boards
.
create
board
.
lists
.
create
(
list_type: :
done
)
board
.
lists
.
create
(
list_type: :
closed
)
board
end
...
...
app/services/boards/issues/list_service.rb
View file @
bc36dfe8
...
...
@@ -41,7 +41,7 @@ module Boards
end
def
set_state
params
[
:state
]
=
list
&&
list
.
done
?
?
'closed'
:
'opened'
params
[
:state
]
=
list
&&
list
.
closed
?
?
'closed'
:
'opened'
end
def
board_label_ids
...
...
app/services/boards/issues/move_service.rb
View file @
bc36dfe8
...
...
@@ -48,8 +48,8 @@ module Boards
end
def
issue_state
return
'reopen'
if
moving_from_list
.
done
?
return
'close'
if
moving_to_list
.
done
?
return
'reopen'
if
moving_from_list
.
closed
?
return
'close'
if
moving_to_list
.
closed
?
end
def
add_label_ids
...
...
app/views/projects/boards/components/_board.html.haml
View file @
bc36dfe8
...
...
@@ -7,12 +7,12 @@
data:
{
container:
"body"
,
placement:
"bottom"
}
}
{{ list.title }}
.board-issue-count-holder.pull-right.clearfix
{
"v-if"
=>
'list.type !== "blank"'
}
%span
.board-issue-count.pull-left
{
":class"
=>
'
{
"has-btn"
:
list
.
type
!==
"
done
"
&&
!
disabled
}
'
}
%span
.board-issue-count.pull-left
{
":class"
=>
'
{
"has-btn"
:
list
.
type
!==
"
closed
"
&&
!
disabled
}
'
}
{{ list.issuesSize }}
-
if
can?
(
current_user
,
:admin_issue
,
@project
)
%button
.btn.btn-small.btn-default.pull-right.has-tooltip
{
type:
"button"
,
"@click"
=>
"showNewIssueForm"
,
"v-if"
=>
'list.type !== "
done
"'
,
"v-if"
=>
'list.type !== "
closed
"'
,
"aria-label"
=>
"Add an issue"
,
"title"
=>
"Add an issue"
,
data:
{
placement:
"top"
,
container:
"body"
}
}
...
...
app/views/projects/boards/components/_board_list.html.haml
View file @
bc36dfe8
...
...
@@ -3,7 +3,7 @@
=
icon
(
"spinner spin"
)
-
if
can?
current_user
,
:create_issue
,
@project
%board-new-issue
{
":list"
=>
"list"
,
"v-if"
=>
'list.type !== "
done
" && showIssueForm'
}
"v-if"
=>
'list.type !== "
closed
" && showIssueForm'
}
%ul
.board-list
{
"ref"
=>
"list"
,
"v-show"
=>
"!loading"
,
":data-board"
=>
"list.id"
,
...
...
changelogs/unreleased/rename_done_to_closed.yml
0 → 100644
View file @
bc36dfe8
---
title
:
Change Done column to Closed in issue boards
merge_request
:
10198
author
:
blackst0ne
doc/api/boards.md
View file @
bc36dfe8
...
...
@@ -63,7 +63,7 @@ Example response:
## List board lists
Get a list of the board's lists.
Does not include
`backlog`
and
`
done
`
lists
Does not include
`backlog`
and
`
closed
`
lists
```
GET /projects/:id/boards/:board_id/lists
...
...
spec/factories/boards.rb
View file @
bc36dfe8
...
...
@@ -3,7 +3,7 @@ FactoryGirl.define do
project
factory: :empty_project
after
(
:create
)
do
|
board
|
board
.
lists
.
create
(
list_type: :
done
)
board
.
lists
.
create
(
list_type: :
closed
)
end
end
end
spec/factories/lists.rb
View file @
bc36dfe8
...
...
@@ -6,8 +6,8 @@ FactoryGirl.define do
sequence
(
:position
)
end
factory
:
done
_list
,
parent: :list
do
list_type
:
done
factory
:
closed
_list
,
parent: :list
do
list_type
:
closed
label
nil
position
nil
end
...
...
spec/features/boards/boards_spec.rb
View file @
bc36dfe8
...
...
@@ -42,7 +42,7 @@ describe 'Issue Boards', feature: true, js: true do
end
it
'creates default lists'
do
lists
=
[
'To Do'
,
'Doing'
,
'
Done
'
]
lists
=
[
'To Do'
,
'Doing'
,
'
Closed
'
]
page
.
within
(
find
(
'.board-blank-state'
))
do
click_button
(
'Add default lists'
)
...
...
@@ -65,7 +65,7 @@ describe 'Issue Boards', feature: true, js: true do
let
(
:testing
)
{
create
(
:label
,
project:
project
,
name:
'Testing'
)
}
let
(
:bug
)
{
create
(
:label
,
project:
project
,
name:
'Bug'
)
}
let!
(
:backlog
)
{
create
(
:label
,
project:
project
,
name:
'Backlog'
)
}
let!
(
:
done
)
{
create
(
:label
,
project:
project
,
name:
'Done
'
)
}
let!
(
:
closed
)
{
create
(
:label
,
project:
project
,
name:
'Closed
'
)
}
let!
(
:accepting
)
{
create
(
:label
,
project:
project
,
name:
'Accepting Merge Requests'
)
}
let!
(
:list1
)
{
create
(
:list
,
board:
board
,
label:
planning
,
position:
0
)
}
...
...
@@ -114,7 +114,7 @@ describe 'Issue Boards', feature: true, js: true do
end
end
it
'search
done
list'
do
it
'search
closed
list'
do
find
(
'.filtered-search'
).
set
(
issue8
.
title
)
find
(
'.filtered-search'
).
native
.
send_keys
(
:enter
)
...
...
@@ -186,13 +186,13 @@ describe 'Issue Boards', feature: true, js: true do
end
end
context
'
done
'
do
it
'shows list of
done
issues'
do
context
'
closed
'
do
it
'shows list of
closed
issues'
do
wait_for_board_cards
(
3
,
1
)
wait_for_ajax
end
it
'moves issue to
done
'
do
it
'moves issue to
closed
'
do
drag
(
list_from_index:
0
,
list_to_index:
2
)
wait_for_board_cards
(
1
,
7
)
...
...
@@ -205,7 +205,7 @@ describe 'Issue Boards', feature: true, js: true do
expect
(
find
(
'.board:nth-child(3)'
)).
not_to
have_content
(
planning
.
title
)
end
it
'removes all of the same issue to
done
'
do
it
'removes all of the same issue to
closed
'
do
drag
(
list_from_index:
0
,
list_to_index:
2
)
wait_for_board_cards
(
1
,
7
)
...
...
@@ -252,7 +252,7 @@ describe 'Issue Boards', feature: true, js: true do
expect
(
find
(
'.board:nth-child(1)'
).
all
(
'.card'
).
first
).
not_to
have_content
(
planning
.
title
)
end
it
'issue moves from
done
'
do
it
'issue moves from
closed
'
do
drag
(
list_from_index:
2
,
list_to_index:
1
)
expect
(
find
(
'.board:nth-child(2)'
)).
to
have_content
(
issue8
.
title
)
...
...
@@ -308,12 +308,12 @@ describe 'Issue Boards', feature: true, js: true do
expect
(
page
).
to
have_selector
(
'.board'
,
count:
4
)
end
it
'creates new list for
Done
label'
do
it
'creates new list for
Closed
label'
do
click_button
'Add list'
wait_for_ajax
page
.
within
(
'.dropdown-menu-issues-board-new'
)
do
click_link
done
.
title
click_link
closed
.
title
end
wait_for_vue_resource
...
...
@@ -326,7 +326,7 @@ describe 'Issue Boards', feature: true, js: true do
wait_for_ajax
page
.
within
(
'.dropdown-menu-issues-board-new'
)
do
click_link
done
.
title
click_link
closed
.
title
end
wait_for_vue_resource
...
...
spec/features/boards/new_issue_spec.rb
View file @
bc36dfe8
...
...
@@ -25,7 +25,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
expect
(
page
).
to
have_selector
(
'.board-issue-count-holder .btn'
,
count:
1
)
end
it
'does not display new issue button in
done
list'
do
it
'does not display new issue button in
closed
list'
do
page
.
within
(
'.board:nth-child(2)'
)
do
expect
(
page
).
not_to
have_selector
(
'.board-issue-count-holder .btn'
)
end
...
...
spec/fixtures/api/schemas/list.json
View file @
bc36dfe8
...
...
@@ -10,7 +10,7 @@
"id"
:
{
"type"
:
"integer"
},
"list_type"
:
{
"type"
:
"string"
,
"enum"
:
[
"label"
,
"
done
"
]
"enum"
:
[
"label"
,
"
closed
"
]
},
"label"
:
{
"type"
:
[
"object"
,
"null"
],
...
...
spec/javascripts/boards/boards_store_spec.js
View file @
bc36dfe8
...
...
@@ -106,9 +106,9 @@ describe('Store', () => {
expect
(
gl
.
issueBoards
.
BoardsStore
.
shouldAddBlankState
()).
toBe
(
false
);
});
it
(
'check for blank state adding when
done
list exist'
,
()
=>
{
it
(
'check for blank state adding when
closed
list exist'
,
()
=>
{
gl
.
issueBoards
.
BoardsStore
.
addList
({
list_type
:
'
done
'
list_type
:
'
closed
'
});
expect
(
gl
.
issueBoards
.
BoardsStore
.
shouldAddBlankState
()).
toBe
(
true
);
...
...
spec/models/list_spec.rb
View file @
bc36dfe8
...
...
@@ -19,8 +19,8 @@ describe List do
expect
(
subject
).
to
validate_uniqueness_of
(
:label_id
).
scoped_to
(
:board_id
)
end
context
'when list_type is set to
done
'
do
subject
{
described_class
.
new
(
list_type: :
done
)
}
context
'when list_type is set to
closed
'
do
subject
{
described_class
.
new
(
list_type: :
closed
)
}
it
{
is_expected
.
not_to
validate_presence_of
(
:label
)
}
it
{
is_expected
.
not_to
validate_presence_of
(
:position
)
}
...
...
@@ -34,8 +34,8 @@ describe List do
expect
(
subject
.
destroy
).
to
be_truthy
end
it
'can not be destroyed when when list_type is set to
done
'
do
subject
=
create
(
:
done
_list
)
it
'can not be destroyed when when list_type is set to
closed
'
do
subject
=
create
(
:
closed
_list
)
expect
(
subject
.
destroy
).
to
be_falsey
end
...
...
@@ -48,8 +48,8 @@ describe List do
expect
(
subject
).
to
be_destroyable
end
it
'returns false when list_type is set to
done
'
do
subject
.
list_type
=
:
done
it
'returns false when list_type is set to
closed
'
do
subject
.
list_type
=
:
closed
expect
(
subject
).
not_to
be_destroyable
end
...
...
@@ -62,8 +62,8 @@ describe List do
expect
(
subject
).
to
be_movable
end
it
'returns false when list_type is set to
done
'
do
subject
.
list_type
=
:
done
it
'returns false when list_type is set to
closed
'
do
subject
.
list_type
=
:
closed
expect
(
subject
).
not_to
be_movable
end
...
...
@@ -77,10 +77,10 @@ describe List do
expect
(
subject
.
title
).
to
eq
'Development'
end
it
'returns
Done when list_type is set to done
'
do
subject
.
list_type
=
:
done
it
'returns
Closed when list_type is set to closed
'
do
subject
.
list_type
=
:
closed
expect
(
subject
.
title
).
to
eq
'
Done
'
expect
(
subject
.
title
).
to
eq
'
Closed
'
end
end
end
spec/services/boards/create_service_spec.rb
View file @
bc36dfe8
...
...
@@ -15,7 +15,7 @@ describe Boards::CreateService, services: true do
board
=
service
.
execute
expect
(
board
.
lists
.
size
).
to
eq
1
expect
(
board
.
lists
.
first
).
to
be_
done
expect
(
board
.
lists
.
first
).
to
be_
closed
end
end
...
...
spec/services/boards/issues/list_service_spec.rb
View file @
bc36dfe8
...
...
@@ -15,7 +15,7 @@ describe Boards::Issues::ListService, services: true do
let!
(
:list1
)
{
create
(
:list
,
board:
board
,
label:
development
,
position:
0
)
}
let!
(
:list2
)
{
create
(
:list
,
board:
board
,
label:
testing
,
position:
1
)
}
let!
(
:
done
)
{
create
(
:done
_list
,
board:
board
)
}
let!
(
:
closed
)
{
create
(
:closed
_list
,
board:
board
)
}
let!
(
:opened_issue1
)
{
create
(
:labeled_issue
,
project:
project
,
labels:
[
bug
])
}
let!
(
:opened_issue2
)
{
create
(
:labeled_issue
,
project:
project
,
labels:
[
p2
])
}
...
...
@@ -53,8 +53,8 @@ describe Boards::Issues::ListService, services: true do
expect
(
issues
).
to
eq
[
opened_issue2
,
reopened_issue1
,
opened_issue1
]
end
it
'returns closed issues when listing issues from
Done
'
do
params
=
{
board_id:
board
.
id
,
id:
done
.
id
}
it
'returns closed issues when listing issues from
Closed
'
do
params
=
{
board_id:
board
.
id
,
id:
closed
.
id
}
issues
=
described_class
.
new
(
project
,
user
,
params
).
execute
...
...
spec/services/boards/issues/move_service_spec.rb
View file @
bc36dfe8
...
...
@@ -12,7 +12,7 @@ describe Boards::Issues::MoveService, services: true do
let!
(
:list1
)
{
create
(
:list
,
board:
board1
,
label:
development
,
position:
0
)
}
let!
(
:list2
)
{
create
(
:list
,
board:
board1
,
label:
testing
,
position:
1
)
}
let!
(
:
done
)
{
create
(
:done
_list
,
board:
board1
)
}
let!
(
:
closed
)
{
create
(
:closed
_list
,
board:
board1
)
}
before
do
project
.
team
<<
[
user
,
:developer
]
...
...
@@ -35,13 +35,13 @@ describe Boards::Issues::MoveService, services: true do
end
end
context
'when moving to
done
'
do
context
'when moving to
closed
'
do
let
(
:board2
)
{
create
(
:board
,
project:
project
)
}
let
(
:regression
)
{
create
(
:label
,
project:
project
,
name:
'Regression'
)
}
let!
(
:list3
)
{
create
(
:list
,
board:
board2
,
label:
regression
,
position:
1
)
}
let
(
:issue
)
{
create
(
:labeled_issue
,
project:
project
,
labels:
[
bug
,
development
,
testing
,
regression
])
}
let
(
:params
)
{
{
board_id:
board1
.
id
,
from_list_id:
list2
.
id
,
to_list_id:
done
.
id
}
}
let
(
:params
)
{
{
board_id:
board1
.
id
,
from_list_id:
list2
.
id
,
to_list_id:
closed
.
id
}
}
it
'delegates the close proceedings to Issues::CloseService'
do
expect_any_instance_of
(
Issues
::
CloseService
).
to
receive
(
:execute
).
with
(
issue
).
once
...
...
@@ -58,9 +58,9 @@ describe Boards::Issues::MoveService, services: true do
end
end
context
'when moving from
done
'
do
context
'when moving from
closed
'
do
let
(
:issue
)
{
create
(
:labeled_issue
,
:closed
,
project:
project
,
labels:
[
bug
])
}
let
(
:params
)
{
{
board_id:
board1
.
id
,
from_list_id:
done
.
id
,
to_list_id:
list2
.
id
}
}
let
(
:params
)
{
{
board_id:
board1
.
id
,
from_list_id:
closed
.
id
,
to_list_id:
list2
.
id
}
}
it
'delegates the re-open proceedings to Issues::ReopenService'
do
expect_any_instance_of
(
Issues
::
ReopenService
).
to
receive
(
:execute
).
with
(
issue
).
once
...
...
spec/services/boards/lists/destroy_service_spec.rb
View file @
bc36dfe8
...
...
@@ -18,18 +18,18 @@ describe Boards::Lists::DestroyService, services: true do
development
=
create
(
:list
,
board:
board
,
position:
0
)
review
=
create
(
:list
,
board:
board
,
position:
1
)
staging
=
create
(
:list
,
board:
board
,
position:
2
)
done
=
board
.
done
_list
closed
=
board
.
closed
_list
described_class
.
new
(
project
,
user
).
execute
(
development
)
expect
(
review
.
reload
.
position
).
to
eq
0
expect
(
staging
.
reload
.
position
).
to
eq
1
expect
(
done
.
reload
.
position
).
to
be_nil
expect
(
closed
.
reload
.
position
).
to
be_nil
end
end
it
'does not remove list from board when list type is
done
'
do
list
=
board
.
done
_list
it
'does not remove list from board when list type is
closed
'
do
list
=
board
.
closed
_list
service
=
described_class
.
new
(
project
,
user
)
expect
{
service
.
execute
(
list
)
}.
not_to
change
(
board
.
lists
,
:count
)
...
...
spec/services/boards/lists/list_service_spec.rb
View file @
bc36dfe8
...
...
@@ -10,7 +10,7 @@ describe Boards::Lists::ListService, services: true do
service
=
described_class
.
new
(
project
,
double
)
expect
(
service
.
execute
(
board
)).
to
eq
[
list
,
board
.
done
_list
]
expect
(
service
.
execute
(
board
)).
to
eq
[
list
,
board
.
closed
_list
]
end
end
end
spec/services/boards/lists/move_service_spec.rb
View file @
bc36dfe8
...
...
@@ -10,7 +10,7 @@ describe Boards::Lists::MoveService, services: true do
let!
(
:development
)
{
create
(
:list
,
board:
board
,
position:
1
)
}
let!
(
:review
)
{
create
(
:list
,
board:
board
,
position:
2
)
}
let!
(
:staging
)
{
create
(
:list
,
board:
board
,
position:
3
)
}
let!
(
:
done
)
{
create
(
:done
_list
,
board:
board
)
}
let!
(
:
closed
)
{
create
(
:closed
_list
,
board:
board
)
}
context
'when list type is set to label'
do
it
'keeps position of lists when new position is nil'
do
...
...
@@ -86,10 +86,10 @@ describe Boards::Lists::MoveService, services: true do
end
end
it
'keeps position of lists when list type is
done
'
do
it
'keeps position of lists when list type is
closed
'
do
service
=
described_class
.
new
(
project
,
user
,
position:
2
)
service
.
execute
(
done
)
service
.
execute
(
closed
)
expect
(
current_list_positions
).
to
eq
[
0
,
1
,
2
,
3
]
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