diff options
author | Valery Sizov <valery@gitlab.com> | 2017-03-06 18:50:59 +0200 |
---|---|---|
committer | Valery Sizov <valery@gitlab.com> | 2017-03-06 18:50:59 +0200 |
commit | 710e4df933ba2070dcc104a18de834c23dd1e5be (patch) | |
tree | dee3817e1ddc46179cdb6e0b3008a9e94b5440d5 /spec/javascripts/boards/issue_spec.js | |
parent | 13caadea7a123d1dc5f3475d360cd07f1aef4acb (diff) | |
parent | b63c41e12e9e6f7e9fd1d79bedf56bd42cc17035 (diff) | |
download | gitlab-ce-710e4df933ba2070dcc104a18de834c23dd1e5be.tar.gz |
Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce into orderable-issues
Diffstat (limited to 'spec/javascripts/boards/issue_spec.js')
-rw-r--r-- | spec/javascripts/boards/issue_spec.js | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/spec/javascripts/boards/issue_spec.js b/spec/javascripts/boards/issue_spec.js new file mode 100644 index 00000000000..c96dfe94a4a --- /dev/null +++ b/spec/javascripts/boards/issue_spec.js @@ -0,0 +1,98 @@ +/* eslint-disable comma-dangle */ +/* global BoardService */ +/* global ListIssue */ + +require('~/lib/utils/url_utility'); +require('~/boards/models/issue'); +require('~/boards/models/label'); +require('~/boards/models/list'); +require('~/boards/models/user'); +require('~/boards/services/board_service'); +require('~/boards/stores/boards_store'); +require('./mock_data'); + +describe('Issue model', () => { + let issue; + + beforeEach(() => { + gl.boardService = new BoardService('/test/issue-boards/board', '', '1'); + gl.issueBoards.BoardsStore.create(); + + issue = new ListIssue({ + title: 'Testing', + iid: 1, + confidential: false, + labels: [{ + id: 1, + title: 'test', + color: 'red', + description: 'testing' + }] + }); + }); + + it('has label', () => { + expect(issue.labels.length).toBe(1); + }); + + it('add new label', () => { + issue.addLabel({ + id: 2, + title: 'bug', + color: 'blue', + description: 'bugs!' + }); + expect(issue.labels.length).toBe(2); + }); + + it('does not add existing label', () => { + issue.addLabel({ + id: 2, + title: 'test', + color: 'blue', + description: 'bugs!' + }); + + expect(issue.labels.length).toBe(1); + }); + + it('finds label', () => { + const label = issue.findLabel(issue.labels[0]); + expect(label).toBeDefined(); + }); + + it('removes label', () => { + const label = issue.findLabel(issue.labels[0]); + issue.removeLabel(label); + expect(issue.labels.length).toBe(0); + }); + + it('removes multiple labels', () => { + issue.addLabel({ + id: 2, + title: 'bug', + color: 'blue', + description: 'bugs!' + }); + expect(issue.labels.length).toBe(2); + + issue.removeLabels([issue.labels[0], issue.labels[1]]); + 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); + }); +}); |