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
3ab101cc
Commit
3ab101cc
authored
Feb 14, 2017
by
Phil Hughes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added JS specs
parent
723c8532
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
96 additions
and
3 deletions
+96
-3
app/assets/javascripts/boards/models/list.js.es6
app/assets/javascripts/boards/models/list.js.es6
+2
-2
app/assets/javascripts/boards/services/board_service.js.es6
app/assets/javascripts/boards/services/board_service.js.es6
+1
-1
spec/javascripts/boards/boards_store_spec.js.es6
spec/javascripts/boards/boards_store_spec.js.es6
+77
-0
spec/javascripts/boards/issue_spec.js.es6
spec/javascripts/boards/issue_spec.js.es6
+16
-0
No files found.
app/assets/javascripts/boards/models/list.js.es6
View file @
3ab101cc
...
@@ -134,7 +134,7 @@ class List {
...
@@ -134,7 +134,7 @@ class List {
if (listFrom) {
if (listFrom) {
this.issuesSize += 1;
this.issuesSize += 1;
gl.boardService.moveIssue(issue.id, listFrom.id, this.id, move
AfterIid, moveBefore
Iid)
gl.boardService.moveIssue(issue.id, listFrom.id, this.id, move
BeforeIid, moveAfter
Iid)
.then(() => {
.then(() => {
listFrom.getIssues(false);
listFrom.getIssues(false);
});
});
...
@@ -146,7 +146,7 @@ class List {
...
@@ -146,7 +146,7 @@ class List {
this.issues.splice(oldIndex, 1);
this.issues.splice(oldIndex, 1);
this.issues.splice(newIndex, 0, issue);
this.issues.splice(newIndex, 0, issue);
gl.boardService.moveIssue(issue.id, null, null, move
AfterIid, moveBefore
Iid);
gl.boardService.moveIssue(issue.id, null, null, move
BeforeIid, moveAfter
Iid);
}
}
findIssue (id) {
findIssue (id) {
...
...
app/assets/javascripts/boards/services/board_service.js.es6
View file @
3ab101cc
...
@@ -64,7 +64,7 @@ class BoardService {
...
@@ -64,7 +64,7 @@ class BoardService {
return this.issues.get(data);
return this.issues.get(data);
}
}
moveIssue (id, from_list_id = null, to_list_id = null, move_
after_iid = null, move_before
_iid = null) {
moveIssue (id, from_list_id = null, to_list_id = null, move_
before_iid = null, move_after
_iid = null) {
return this.issue.update({ id }, {
return this.issue.update({ id }, {
from_list_id,
from_list_id,
to_list_id,
to_list_id,
...
...
spec/javascripts/boards/boards_store_spec.js.es6
View file @
3ab101cc
window.ES6Promise = require('vendor/es6-promise.auto');
window.ES6Promise.polyfill();
/* eslint-disable comma-dangle, one-var, no-unused-vars */
/* eslint-disable comma-dangle, one-var, no-unused-vars */
/* global Vue */
/* global Vue */
/* global BoardService */
/* global BoardService */
...
@@ -21,6 +23,12 @@ describe('Store', () => {
...
@@ -21,6 +23,12 @@ describe('Store', () => {
gl.boardService = new BoardService('/test/issue-boards/board', '', '1');
gl.boardService = new BoardService('/test/issue-boards/board', '', '1');
gl.issueBoards.BoardsStore.create();
gl.issueBoards.BoardsStore.create();
spyOn(gl.boardService, 'moveIssue').and.callFake(() => {
return new Promise((resolve) => {
resolve();
});
});
Cookies.set('issue_board_welcome_hidden', 'false', {
Cookies.set('issue_board_welcome_hidden', 'false', {
expires: 365 * 10,
expires: 365 * 10,
path: ''
path: ''
...
@@ -154,5 +162,74 @@ describe('Store', () => {
...
@@ -154,5 +162,74 @@ describe('Store', () => {
done();
done();
}, 0);
}, 0);
});
});
it('moves issue to top of another list', (done) => {
const listOne = gl.issueBoards.BoardsStore.addList(listObj);
const listTwo = gl.issueBoards.BoardsStore.addList(listObjDuplicate);
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(2);
setTimeout(() => {
listOne.issues[0].id = 2;
expect(listOne.issues.length).toBe(1);
expect(listTwo.issues.length).toBe(1);
gl.issueBoards.BoardsStore.moveIssueToList(listOne, listTwo, listOne.findIssue(2), 0);
expect(listOne.issues.length).toBe(0);
expect(listTwo.issues.length).toBe(2);
expect(listTwo.issues[0].id).toBe(2);
expect(gl.boardService.moveIssue).toHaveBeenCalledWith(2, listOne.id, listTwo.id, null, 1);
done();
}, 0);
});
it('moves issue to bottom of another list', (done) => {
const listOne = gl.issueBoards.BoardsStore.addList(listObj);
const listTwo = gl.issueBoards.BoardsStore.addList(listObjDuplicate);
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(2);
setTimeout(() => {
listOne.issues[0].id = 2;
expect(listOne.issues.length).toBe(1);
expect(listTwo.issues.length).toBe(1);
gl.issueBoards.BoardsStore.moveIssueToList(listOne, listTwo, listOne.findIssue(2), 1);
expect(listOne.issues.length).toBe(0);
expect(listTwo.issues.length).toBe(2);
expect(listTwo.issues[1].id).toBe(2);
expect(gl.boardService.moveIssue).toHaveBeenCalledWith(2, listOne.id, listTwo.id, 1, null);
done();
}, 0);
});
it('moves issue in list', (done) => {
const issue = new ListIssue({
title: 'Testing',
iid: 2,
confidential: false,
labels: []
});
const list = gl.issueBoards.BoardsStore.addList(listObj);
setTimeout(() => {
list.addIssue(issue);
expect(list.issues.length).toBe(2);
gl.issueBoards.BoardsStore.moveIssueInList(list, issue, 0, 1, [1, 2]);
expect(list.issues[0].id).toBe(2);
expect(gl.boardService.moveIssue).toHaveBeenCalledWith(2, null, null, 1, null);
done();
});
});
});
});
});
});
spec/javascripts/boards/issue_spec.js.es6
View file @
3ab101cc
...
@@ -79,4 +79,20 @@ describe('Issue model', () => {
...
@@ -79,4 +79,20 @@ describe('Issue model', () => {
issue.removeLabels([issue.labels[0], issue.labels[1]]);
issue.removeLabels([issue.labels[0], issue.labels[1]]);
expect(issue.labels.length).toBe(0);
expect(issue.labels.length).toBe(0);
});
});
it('sets position to infinity if no position is stored', () => {
expect(issue.position).toBe(Infinity);
});
it('sets position', () => {
const relativePositionIssue = new ListIssue({
title: 'Testing',
iid: 1,
confidential: false,
relative_position: 1,
labels: []
});
expect(relativePositionIssue.position).toBe(1);
});
});
});
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