summaryrefslogtreecommitdiff
path: root/spec/javascripts/boards/issue_spec.js
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2017-03-06 18:50:59 +0200
committerValery Sizov <valery@gitlab.com>2017-03-06 18:50:59 +0200
commit710e4df933ba2070dcc104a18de834c23dd1e5be (patch)
treedee3817e1ddc46179cdb6e0b3008a9e94b5440d5 /spec/javascripts/boards/issue_spec.js
parent13caadea7a123d1dc5f3475d360cd07f1aef4acb (diff)
parentb63c41e12e9e6f7e9fd1d79bedf56bd42cc17035 (diff)
downloadgitlab-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.js98
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);
+ });
+});