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
Jérome Perrin
gitlab-ce
Commits
4ffc863a
Commit
4ffc863a
authored
7 years ago
by
Eric Eastwood
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Switch boards to Axios
parent
ac9e65a9
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
131 additions
and
148 deletions
+131
-148
app/assets/javascripts/boards/boards_bundle.js
app/assets/javascripts/boards/boards_bundle.js
+7
-8
app/assets/javascripts/boards/components/board_blank_state.js
...assets/javascripts/boards/components/board_blank_state.js
+1
-1
app/assets/javascripts/boards/components/modal/index.js
app/assets/javascripts/boards/components/modal/index.js
+1
-1
app/assets/javascripts/boards/models/list.js
app/assets/javascripts/boards/models/list.js
+3
-3
app/assets/javascripts/boards/services/board_service.js
app/assets/javascripts/boards/services/board_service.js
+49
-52
spec/javascripts/boards/board_blank_state_spec.js
spec/javascripts/boards/board_blank_state_spec.js
+10
-13
spec/javascripts/boards/board_card_spec.js
spec/javascripts/boards/board_card_spec.js
+7
-6
spec/javascripts/boards/board_list_spec.js
spec/javascripts/boards/board_list_spec.js
+7
-7
spec/javascripts/boards/board_new_issue_spec.js
spec/javascripts/boards/board_new_issue_spec.js
+13
-10
spec/javascripts/boards/boards_store_spec.js
spec/javascripts/boards/boards_store_spec.js
+8
-7
spec/javascripts/boards/components/board_spec.js
spec/javascripts/boards/components/board_spec.js
+1
-2
spec/javascripts/boards/issue_card_spec.js
spec/javascripts/boards/issue_card_spec.js
+1
-2
spec/javascripts/boards/issue_spec.js
spec/javascripts/boards/issue_spec.js
+1
-2
spec/javascripts/boards/list_spec.js
spec/javascripts/boards/list_spec.js
+9
-12
spec/javascripts/boards/mock_data.js
spec/javascripts/boards/mock_data.js
+13
-22
No files found.
app/assets/javascripts/boards/boards_bundle.js
View file @
4ffc863a
...
...
@@ -2,7 +2,6 @@
import
_
from
'
underscore
'
;
import
Vue
from
'
vue
'
;
import
VueResource
from
'
vue-resource
'
;
import
Flash
from
'
../flash
'
;
import
{
__
}
from
'
../locale
'
;
import
FilteredSearchBoards
from
'
./filtered_search_boards
'
;
...
...
@@ -25,8 +24,6 @@ import './components/new_list_dropdown';
import
'
./components/modal/index
'
;
import
'
../vue_shared/vue_resource_interceptor
'
;
Vue
.
use
(
VueResource
);
$
(()
=>
{
const
$boardApp
=
document
.
getElementById
(
'
board-app
'
);
const
Store
=
gl
.
issueBoards
.
BoardsStore
;
...
...
@@ -95,9 +92,9 @@ $(() => {
Store
.
disabled
=
this
.
disabled
;
gl
.
boardService
.
all
()
.
then
(
res
ponse
=>
response
.
json
()
)
.
then
((
resp
)
=>
{
resp
.
forEach
((
board
)
=>
{
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
data
.
forEach
((
board
)
=>
{
const
list
=
Store
.
addList
(
board
,
this
.
defaultAvatar
);
if
(
list
.
type
===
'
closed
'
)
{
...
...
@@ -112,7 +109,9 @@ $(() => {
Store
.
addBlankState
();
this
.
loading
=
false
;
})
.
catch
(()
=>
new
Flash
(
'
An error occurred. Please try again.
'
));
.
catch
(()
=>
{
Flash
(
'
An error occurred while fetching the board lists. Please try again.
'
);
});
},
methods
:
{
updateTokens
()
{
...
...
@@ -123,7 +122,7 @@ $(() => {
if
(
sidebarInfoEndpoint
&&
newIssue
.
subscribed
===
undefined
)
{
newIssue
.
setFetchingState
(
'
subscriptions
'
,
true
);
BoardService
.
getIssueInfo
(
sidebarInfoEndpoint
)
.
then
(
res
=>
res
.
json
()
)
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
newIssue
.
setFetchingState
(
'
subscriptions
'
,
false
);
newIssue
.
updateData
({
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/components/board_blank_state.js
View file @
4ffc863a
...
...
@@ -65,7 +65,7 @@ export default {
// Save the labels
gl
.
boardService
.
generateDefaultLists
()
.
then
(
res
p
=>
resp
.
json
()
)
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
data
.
forEach
((
listObj
)
=>
{
const
list
=
Store
.
findList
(
'
title
'
,
listObj
.
title
);
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/components/modal/index.js
View file @
4ffc863a
...
...
@@ -89,7 +89,7 @@ gl.issueBoards.IssuesModal = Vue.extend({
page
:
this
.
page
,
per
:
this
.
perPage
,
}))
.
then
(
res
p
=>
resp
.
json
()
)
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
if
(
clearIssues
)
{
this
.
issues
=
[];
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/models/list.js
View file @
4ffc863a
...
...
@@ -40,7 +40,7 @@ class List {
save
()
{
return
gl
.
boardService
.
createList
(
this
.
label
.
id
)
.
then
(
res
p
=>
resp
.
json
()
)
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
this
.
id
=
data
.
id
;
this
.
type
=
data
.
list_type
;
...
...
@@ -90,7 +90,7 @@ class List {
}
return
gl
.
boardService
.
getIssuesForList
(
this
.
id
,
data
)
.
then
(
res
p
=>
resp
.
json
()
)
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
this
.
loading
=
false
;
this
.
issuesSize
=
data
.
size
;
...
...
@@ -108,7 +108,7 @@ class List {
this
.
issuesSize
+=
1
;
return
gl
.
boardService
.
newIssue
(
this
.
id
,
issue
)
.
then
(
res
p
=>
resp
.
json
()
)
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
issue
.
id
=
data
.
id
;
issue
.
iid
=
data
.
iid
;
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/boards/services/board_service.js
View file @
4ffc863a
/* eslint-disable space-before-function-paren, comma-dangle, no-param-reassign, camelcase, max-len, no-unused-vars */
import
Vue
from
'
vue
'
;
import
axios
from
'
../../lib/utils/axios_utils
'
;
import
{
mergeUrlParams
}
from
'
../../lib/utils/url_utility
'
;
export
default
class
BoardService
{
constructor
({
boardsEndpoint
,
listsEndpoint
,
bulkUpdatePath
,
boardId
})
{
this
.
boards
=
Vue
.
resource
(
`
${
boardsEndpoint
}
{/id}.json`
,
{},
{
issues
:
{
method
:
'
GET
'
,
url
:
`
${
gon
.
relative_url_root
}
/-/boards/
${
boardId
}
/issues.json`
,
constructor
({
boardsEndpoint
,
listsEndpoint
,
bulkUpdatePath
,
boardId
})
{
this
.
boardsEndpoint
=
boardsEndpoint
;
this
.
boardId
=
boardId
;
this
.
listsEndpoint
=
listsEndpoint
;
this
.
listsEndpointGenerate
=
`
${
listsEndpoint
}
/generate.json`
;
this
.
bulkUpdatePath
=
bulkUpdatePath
;
}
});
this
.
lists
=
Vue
.
resource
(
`
${
listsEndpoint
}
{/id}`
,
{},
{
generate
:
{
method
:
'
POST
'
,
url
:
`
${
listsEndpoint
}
/generate.json`
generateBoardsPath
(
id
)
{
return
`
${
this
.
boardsEndpoint
}${
id
?
`/
${
id
}
`
:
''
}
.json`
;
}
});
this
.
issue
=
Vue
.
resource
(
`
${
gon
.
relative_url_root
}
/-/boards/
${
boardId
}
/issues{/id}`
,
{});
this
.
issues
=
Vue
.
resource
(
`
${
listsEndpoint
}
{/id}/issues`
,
{},
{
bulkUpdate
:
{
method
:
'
POST
'
,
url
:
bulkUpdatePath
,
},
});
generateIssuesPath
(
id
)
{
return
`
${
this
.
listsEndpoint
}${
id
?
`/
${
id
}
`
:
''
}
/issues`
;
}
all
(
)
{
return
this
.
lists
.
get
()
;
static
generateIssuePath
(
boardId
,
id
)
{
return
`
${
gon
.
relative_url_root
}
/-/boards/
${
boardId
?
`/
${
boardId
}
`
:
''
}
/issues
${
id
?
`/
${
id
}
`
:
''
}
`
;
}
generateDefaultLists
()
{
return
this
.
lists
.
generate
({}
);
all
()
{
return
axios
.
get
(
this
.
listsEndpoint
);
}
createList
(
label_id
)
{
return
this
.
lists
.
save
({},
{
list
:
{
label_id
generateDefaultLists
()
{
return
axios
.
post
(
this
.
listsEndpointGenerate
,
{});
}
createList
(
labelId
)
{
return
axios
.
post
(
this
.
listsEndpoint
,
{
list
:
{
label_id
:
labelId
,
},
});
}
updateList
(
id
,
position
)
{
return
this
.
lists
.
update
({
id
}
,
{
updateList
(
id
,
position
)
{
return
axios
.
put
(
`
${
this
.
listsEndpoint
}
/
${
id
}
`
,
{
list
:
{
position
}
position
,
}
,
});
}
destroyList
(
id
)
{
return
this
.
lists
.
delete
({
id
}
);
destroyList
(
id
)
{
return
axios
.
delete
(
`
${
this
.
listsEndpoint
}
/
${
id
}
`
);
}
getIssuesForList
(
id
,
filter
=
{})
{
getIssuesForList
(
id
,
filter
=
{})
{
const
data
=
{
id
};
Object
.
keys
(
filter
).
forEach
((
key
)
=>
{
data
[
key
]
=
filter
[
key
];
});
return
this
.
issues
.
get
(
data
);
return
axios
.
get
(
mergeUrlParams
(
data
,
this
.
generateIssuesPath
(
id
))
);
}
moveIssue
(
id
,
from_list_id
=
null
,
to_list_id
=
null
,
move_before_id
=
null
,
move_after_i
d
=
null
)
{
return
this
.
issue
.
update
({
id
}
,
{
from_list_id
,
to_list_id
,
move_before_id
,
move_after_id
,
moveIssue
(
id
,
fromListId
=
null
,
toListId
=
null
,
moveBeforeId
=
null
,
moveAfterI
d
=
null
)
{
return
axios
.
put
(
BoardService
.
generateIssuePath
(
this
.
boardId
,
id
)
,
{
from_list_id
:
fromListId
,
to_list_id
:
toListId
,
move_before_id
:
moveBeforeId
,
move_after_id
:
moveAfterId
,
});
}
newIssue
(
id
,
issue
)
{
return
this
.
issues
.
save
({
id
}
,
{
issue
newIssue
(
id
,
issue
)
{
return
axios
.
post
(
this
.
generateIssuesPath
(
id
)
,
{
issue
,
});
}
getBacklog
(
data
)
{
return
this
.
boards
.
issues
(
data
);
return
axios
.
get
(
mergeUrlParams
(
data
,
`
${
gon
.
relative_url_root
}
/-/boards/
${
this
.
boardId
}
/issues.json`
)
);
}
bulkUpdate
(
issueIds
,
extraData
=
{})
{
...
...
@@ -86,15 +83,15 @@ export default class BoardService {
}),
};
return
this
.
issues
.
bulkUpdate
(
data
);
return
axios
.
post
(
this
.
bulkUpdatePath
,
data
);
}
static
getIssueInfo
(
endpoint
)
{
return
Vue
.
http
.
get
(
endpoint
);
return
axios
.
get
(
endpoint
);
}
static
toggleIssueSubscription
(
endpoint
)
{
return
Vue
.
http
.
post
(
endpoint
);
return
axios
.
post
(
endpoint
);
}
}
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/board_blank_state_spec.js
View file @
4ffc863a
/* global BoardService */
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
'
~/boards/stores/boards_store
'
;
import
boardBlankState
from
'
~/boards/components/board_blank_state
'
;
import
'
./mock_data
'
;
import
{
mockBoardService
}
from
'
./mock_data
'
;
describe
(
'
Boards blank state
'
,
()
=>
{
let
vm
;
...
...
@@ -20,8 +19,7 @@ describe('Boards blank state', () => {
reject
();
}
else
{
resolve
({
json
()
{
return
[{
data
:
[{
id
:
1
,
title
:
'
To Do
'
,
label
:
{
id
:
1
},
...
...
@@ -29,8 +27,7 @@ describe('Boards blank state', () => {
id
:
2
,
title
:
'
Doing
'
,
label
:
{
id
:
2
},
}];
},
}],
});
}
}));
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/board_card_spec.js
View file @
4ffc863a
/* global List */
/* global ListAssignee */
/* global ListLabel */
/* global listObj */
/* global boardsMockInterceptor */
/* global BoardService */
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
'
~/boards/models/assignee
'
;
import
eventHub
from
'
~/boards/eventhub
'
;
...
...
@@ -14,13 +13,15 @@ import '~/boards/models/list';
import
'
~/boards/models/label
'
;
import
'
~/boards/stores/boards_store
'
;
import
boardCard
from
'
~/boards/components/board_card.vue
'
;
import
'
./mock_data
'
;
import
{
listObj
,
boardsMockInterceptor
,
mockBoardService
}
from
'
./mock_data
'
;
describe
(
'
Board card
'
,
()
=>
{
let
vm
;
let
mock
;
beforeEach
((
done
)
=>
{
Vue
.
http
.
interceptors
.
push
(
boardsMockInterceptor
);
mock
=
new
MockAdapter
(
axios
);
mock
.
onAny
().
reply
(
boardsMockInterceptor
);
gl
.
boardService
=
mockBoardService
();
gl
.
issueBoards
.
BoardsStore
.
create
();
...
...
@@ -54,7 +55,7 @@ describe('Board card', () => {
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
boardsMockInterceptor
);
mock
.
reset
(
);
});
it
(
'
returns false when detailIssue is empty
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/board_list_spec.js
View file @
4ffc863a
/* global BoardService */
/* global boardsMockInterceptor */
/* global List */
/* global listObj */
/* global ListIssue */
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
_
from
'
underscore
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
Sortable
from
'
vendor/Sortable
'
;
import
BoardList
from
'
~/boards/components/board_list
'
;
import
eventHub
from
'
~/boards/eventhub
'
;
...
...
@@ -13,18 +11,20 @@ import '~/boards/mixins/sortable_default_options';
import
'
~/boards/models/issue
'
;
import
'
~/boards/models/list
'
;
import
'
~/boards/stores/boards_store
'
;
import
'
./mock_data
'
;
import
{
listObj
,
boardsMockInterceptor
,
mockBoardService
}
from
'
./mock_data
'
;
window
.
Sortable
=
Sortable
;
describe
(
'
Board list component
'
,
()
=>
{
let
mock
;
let
component
;
beforeEach
((
done
)
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
document
.
body
.
appendChild
(
el
);
Vue
.
http
.
interceptors
.
push
(
boardsMockInterceptor
);
mock
=
new
MockAdapter
(
axios
);
mock
.
onAny
().
reply
(
boardsMockInterceptor
);
gl
.
boardService
=
mockBoardService
();
gl
.
issueBoards
.
BoardsStore
.
create
();
gl
.
IssueBoardsApp
=
new
Vue
();
...
...
@@ -60,7 +60,7 @@ describe('Board list component', () => {
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
boardsMockInterceptor
);
mock
.
reset
(
);
});
it
(
'
renders component
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/board_new_issue_spec.js
View file @
4ffc863a
/* global boardsMockInterceptor */
/* global BoardService */
/* global List */
/* global listObj */
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
boardNewIssue
from
'
~/boards/components/board_new_issue
'
;
import
'
~/boards/models/list
'
;
import
'
./mock_data
'
;
import
{
listObj
,
boardsMockInterceptor
,
mockBoardService
}
from
'
./mock_data
'
;
describe
(
'
Issue boards new issue form
'
,
()
=>
{
let
vm
;
let
list
;
let
mock
;
let
newIssueMock
;
const
promiseReturn
=
{
json
()
{
return
{
data
:
{
iid
:
100
,
};
},
};
...
...
@@ -35,7 +33,9 @@ describe('Issue boards new issue form', () => {
const
BoardNewIssueComp
=
Vue
.
extend
(
boardNewIssue
);
Vue
.
http
.
interceptors
.
push
(
boardsMockInterceptor
);
mock
=
new
MockAdapter
(
axios
);
mock
.
onAny
().
reply
(
boardsMockInterceptor
);
gl
.
boardService
=
mockBoardService
();
gl
.
issueBoards
.
BoardsStore
.
create
();
gl
.
IssueBoardsApp
=
new
Vue
();
...
...
@@ -56,7 +56,10 @@ describe('Issue boards new issue form', () => {
.
catch
(
done
.
fail
);
});
afterEach
(()
=>
vm
.
$destroy
());
afterEach
(()
=>
{
vm
.
$destroy
();
mock
.
reset
();
});
it
(
'
calls submit if submit button is clicked
'
,
(
done
)
=>
{
spyOn
(
vm
,
'
submit
'
).
and
.
callFake
(
e
=>
e
.
preventDefault
());
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/boards_store_spec.js
View file @
4ffc863a
/* eslint-disable comma-dangle, one-var, no-unused-vars */
/* global BoardService */
/* global boardsMockInterceptor */
/* global listObj */
/* global listObjDuplicate */
/* global ListIssue */
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
Cookies
from
'
js-cookie
'
;
import
'
~/boards/models/issue
'
;
...
...
@@ -15,11 +13,14 @@ import '~/boards/models/list';
import
'
~/boards/models/assignee
'
;
import
'
~/boards/services/board_service
'
;
import
'
~/boards/stores/boards_store
'
;
import
'
./mock_data
'
;
import
{
listObj
,
listObjDuplicate
,
boardsMockInterceptor
,
mockBoardService
}
from
'
./mock_data
'
;
describe
(
'
Store
'
,
()
=>
{
let
mock
;
beforeEach
(()
=>
{
Vue
.
http
.
interceptors
.
push
(
boardsMockInterceptor
);
mock
=
new
MockAdapter
(
axios
);
mock
.
onAny
().
reply
(
boardsMockInterceptor
);
gl
.
boardService
=
mockBoardService
();
gl
.
issueBoards
.
BoardsStore
.
create
();
...
...
@@ -34,7 +35,7 @@ describe('Store', () => {
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
boardsMockInterceptor
);
mock
.
reset
(
);
});
it
(
'
starts with a blank state
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/components/board_spec.js
View file @
4ffc863a
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
'
~/boards/services/board_service
'
;
import
'
~/boards/components/board
'
;
import
'
~/boards/models/list
'
;
import
'
../mock_data
'
;
import
{
mockBoardService
}
from
'
../mock_data
'
;
describe
(
'
Board component
'
,
()
=>
{
let
vm
;
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/issue_card_spec.js
View file @
4ffc863a
/* global ListAssignee */
/* global ListLabel */
/* global listObj */
/* global ListIssue */
import
Vue
from
'
vue
'
;
...
...
@@ -11,7 +10,7 @@ import '~/boards/models/list';
import
'
~/boards/models/assignee
'
;
import
'
~/boards/stores/boards_store
'
;
import
'
~/boards/components/issue_card_inner
'
;
import
'
./mock_data
'
;
import
{
listObj
}
from
'
./mock_data
'
;
describe
(
'
Issue card component
'
,
()
=>
{
const
user
=
new
ListAssignee
({
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/issue_spec.js
View file @
4ffc863a
/* eslint-disable comma-dangle */
/* global BoardService */
/* global ListIssue */
/* global mockBoardService */
import
Vue
from
'
vue
'
;
import
'
~/boards/models/issue
'
;
...
...
@@ -10,7 +9,7 @@ import '~/boards/models/list';
import
'
~/boards/models/assignee
'
;
import
'
~/boards/services/board_service
'
;
import
'
~/boards/stores/boards_store
'
;
import
'
./mock_data
'
;
import
{
mockBoardService
}
from
'
./mock_data
'
;
describe
(
'
Issue model
'
,
()
=>
{
let
issue
;
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/list_spec.js
View file @
4ffc863a
/* eslint-disable comma-dangle */
/* global boardsMockInterceptor */
/* global BoardService */
/* global mockBoardService */
/* global List */
/* global ListIssue */
/* global listObj */
/* global listObjDuplicate */
import
Vue
from
'
vue
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
'
~/boards/models/issue
'
;
import
'
~/boards/models/label
'
;
...
...
@@ -15,13 +12,15 @@ import '~/boards/models/list';
import
'
~/boards/models/assignee
'
;
import
'
~/boards/services/board_service
'
;
import
'
~/boards/stores/boards_store
'
;
import
'
./mock_data
'
;
import
{
listObj
,
listObjDuplicate
,
boardsMockInterceptor
,
mockBoardService
}
from
'
./mock_data
'
;
describe
(
'
List model
'
,
()
=>
{
let
list
;
let
mock
;
beforeEach
(()
=>
{
Vue
.
http
.
interceptors
.
push
(
boardsMockInterceptor
);
mock
=
new
MockAdapter
(
axios
);
mock
.
onAny
().
reply
(
boardsMockInterceptor
);
gl
.
boardService
=
mockBoardService
({
bulkUpdatePath
:
'
/test/issue-boards/board/1/lists
'
,
});
...
...
@@ -31,7 +30,7 @@ describe('List model', () => {
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
boardsMockInterceptor
);
mock
.
reset
(
);
});
it
(
'
gets issues when created
'
,
(
done
)
=>
{
...
...
@@ -158,10 +157,8 @@ describe('List model', () => {
describe
(
'
newIssue
'
,
()
=>
{
beforeEach
(()
=>
{
spyOn
(
gl
.
boardService
,
'
newIssue
'
).
and
.
returnValue
(
Promise
.
resolve
({
json
()
{
return
{
data
:
{
id
:
42
,
};
},
}));
});
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/boards/mock_data.js
View file @
4ffc863a
/* global BoardService */
/* eslint-disable comma-dangle, no-unused-vars, quote-props */
const
listObj
=
{
id
:
_
.
random
(
10000
)
,
export
const
listObj
=
{
id
:
300
,
position
:
0
,
title
:
'
Test
'
,
list_type
:
'
label
'
,
label
:
{
id
:
_
.
random
(
10000
)
,
id
:
5000
,
title
:
'
Testing
'
,
color
:
'
red
'
,
description
:
'
testing;
'
}
};
const
listObjDuplicate
=
{
export
const
listObjDuplicate
=
{
id
:
listObj
.
id
,
position
:
1
,
title
:
'
Test
'
,
...
...
@@ -27,9 +27,9 @@ const listObjDuplicate = {
}
};
const
BoardsMockData
=
{
export
const
BoardsMockData
=
{
'
GET
'
:
{
'
/test/
boards/1{/id}/issues
'
:
{
'
/test/
-/boards/1/lists/300/issues?id=300&page=1&=
'
:
{
issues
:
[{
title
:
'
Testing
'
,
id
:
1
,
...
...
@@ -41,7 +41,7 @@ const BoardsMockData = {
}
},
'
POST
'
:
{
'
/test/
boards/1{/id}
'
:
listObj
'
/test/
-/boards/1/lists
'
:
listObj
},
'
PUT
'
:
{
'
/test/issue-boards/board/1/lists{/id}
'
:
{}
...
...
@@ -51,17 +51,14 @@ const BoardsMockData = {
}
};
const
boardsMockInterceptor
=
(
request
,
next
)
=>
{
const
body
=
BoardsMockData
[
request
.
method
][
request
.
url
];
next
(
request
.
respondWith
(
JSON
.
stringify
(
body
),
{
status
:
200
}));
export
const
boardsMockInterceptor
=
(
config
)
=>
{
const
body
=
BoardsMockData
[
config
.
method
.
toUpperCase
()][
config
.
url
];
return
[
200
,
body
];
};
const
mockBoardService
=
(
opts
=
{})
=>
{
const
boardsEndpoint
=
opts
.
boardsEndpoint
||
'
/test/issue-boards/board
'
;
const
listsEndpoint
=
opts
.
listsEndpoint
||
'
/test/
boards/1
'
;
export
const
mockBoardService
=
(
opts
=
{})
=>
{
const
boardsEndpoint
=
opts
.
boardsEndpoint
||
'
/test/issue-boards/board
s.json
'
;
const
listsEndpoint
=
opts
.
listsEndpoint
||
'
/test/
-/boards/1/lists
'
;
const
bulkUpdatePath
=
opts
.
bulkUpdatePath
||
''
;
const
boardId
=
opts
.
boardId
||
'
1
'
;
...
...
@@ -72,9 +69,3 @@ const mockBoardService = (opts = {}) => {
boardId
,
});
};
window
.
listObj
=
listObj
;
window
.
listObjDuplicate
=
listObjDuplicate
;
window
.
BoardsMockData
=
BoardsMockData
;
window
.
boardsMockInterceptor
=
boardsMockInterceptor
;
window
.
mockBoardService
=
mockBoardService
;
This diff is collapsed.
Click to expand it.
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