summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-08-16 09:39:58 +0100
committerPhil Hughes <me@iamphill.com>2016-08-17 17:17:39 +0100
commit8d0ddbdb366cce8e4a5709619064d8a48f5014f3 (patch)
tree41f1070432eee62a5790f94ade5ece353b763bd6
parentdc73405d6e682452379366d9652a403c1be2a77a (diff)
downloadgitlab-ce-8d0ddbdb366cce8e4a5709619064d8a48f5014f3.tar.gz
Updated rspec to not use sleep when dragging
Fixed JS tests
-rw-r--r--app/assets/javascripts/boards/stores/boards_store.js.es66
-rwxr-xr-xapp/assets/javascripts/boards/test_utils/simulate_drag.js2
-rw-r--r--spec/features/boards/boards_spec.rb5
-rw-r--r--spec/javascripts/boards/boards_store_spec.js.es624
4 files changed, 20 insertions, 17 deletions
diff --git a/app/assets/javascripts/boards/stores/boards_store.js.es6 b/app/assets/javascripts/boards/stores/boards_store.js.es6
index 9564f48fdbe..e55941cd5bd 100644
--- a/app/assets/javascripts/boards/stores/boards_store.js.es6
+++ b/app/assets/javascripts/boards/stores/boards_store.js.es6
@@ -71,8 +71,8 @@
welcomeIsHidden () {
return $.cookie('issue_board_welcome_hidden') === 'true';
},
- removeList (id) {
- const list = this.findList('id', id, 'blank');
+ removeList (id, type = 'blank') {
+ const list = this.findList('id', id, type);
if (!list) return;
@@ -107,6 +107,8 @@
list.removeIssue(issue);
}
issue.removeLabels(listLabels);
+ } else {
+ listFrom.removeIssue(issue);
}
},
findList (key, val, type = 'label') {
diff --git a/app/assets/javascripts/boards/test_utils/simulate_drag.js b/app/assets/javascripts/boards/test_utils/simulate_drag.js
index 8c5196e7719..75f8b730195 100755
--- a/app/assets/javascripts/boards/test_utils/simulate_drag.js
+++ b/app/assets/javascripts/boards/test_utils/simulate_drag.js
@@ -84,6 +84,7 @@
var duration = options.duration || 1000;
simulateEvent(fromEl, 'mousedown', {button: 0});
options.ontap && options.ontap();
+ window.SIMULATE_DRAG_ACTIVE = 1;
var dragInterval = setInterval(function loop() {
var progress = (new Date().getTime() - startTime) / duration;
@@ -100,6 +101,7 @@
options.ondragend && options.ondragend();
simulateEvent(toEl, 'mouseup');
clearInterval(dragInterval);
+ window.SIMULATE_DRAG_ACTIVE = 0;
}
}, 100);
diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb
index 13bf440cc8f..8c101a251b3 100644
--- a/spec/features/boards/boards_spec.rb
+++ b/spec/features/boards/boards_spec.rb
@@ -508,6 +508,9 @@ describe 'Issue Boards', feature: true, js: true do
def drag_to(list_from_index: 0, card_index: 0, to_index: 0, list_to_index: 0, selector: '.board-list')
evaluate_script("simulateDrag({scrollable: document.getElementById('board-app'), from: {el: $('#{selector}').eq(#{list_from_index}).get(0), index: #{card_index}}, to: {el: $('.board-list').eq(#{list_to_index}).get(0), index: #{to_index}}});")
- sleep 1
+
+ Timeout.timeout(Capybara.default_max_wait_time) do
+ loop until page.evaluate_script('window.SIMULATE_DRAG_ACTIVE').zero?
+ end
end
end
diff --git a/spec/javascripts/boards/boards_store_spec.js.es6 b/spec/javascripts/boards/boards_store_spec.js.es6
index b7923c85cec..078e4b00023 100644
--- a/spec/javascripts/boards/boards_store_spec.js.es6
+++ b/spec/javascripts/boards/boards_store_spec.js.es6
@@ -125,39 +125,35 @@
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(1);
- gl.issueBoards.BoardsStore.removeList(1);
+ gl.issueBoards.BoardsStore.removeList(1, 'label');
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(0);
});
it('moves the position of lists', () => {
- gl.issueBoards.BoardsStore.addList(listObj);
- gl.issueBoards.BoardsStore.addList(listObjDuplicate);
+ const listOne = gl.issueBoards.BoardsStore.addList(listObj),
+ listTwo = gl.issueBoards.BoardsStore.addList(listObjDuplicate);
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(2);
- gl.issueBoards.BoardsStore.moveList(0, 1);
+ gl.issueBoards.BoardsStore.moveList(listOne, ['2', '1']);
- const list = gl.issueBoards.BoardsStore.findList('id', 1);
- expect(list.position).toBe(1);
+ expect(listOne.position).toBe(1);
});
it('moves an issue from one list to another', (done) => {
- gl.issueBoards.BoardsStore.addList(listObj);
- gl.issueBoards.BoardsStore.addList(listObjDuplicate);
+ const listOne = gl.issueBoards.BoardsStore.addList(listObj),
+ listTwo = gl.issueBoards.BoardsStore.addList(listObjDuplicate);
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(2);
- const list = gl.issueBoards.BoardsStore.findList('id', 1),
- listTwo = gl.issueBoards.BoardsStore.findList('id', 2);
-
setTimeout(() => {
- expect(list.issues.length).toBe(1);
+ expect(listOne.issues.length).toBe(1);
expect(listTwo.issues.length).toBe(1);
- gl.issueBoards.BoardsStore.moveIssueToList(1, 2, 1);
+ gl.issueBoards.BoardsStore.moveIssueToList(listOne, listTwo, listOne.findIssue(1));
- expect(list.issues.length).toBe(0);
+ expect(listOne.issues.length).toBe(0);
expect(listTwo.issues.length).toBe(1);
done();