Commit 8d0ddbdb authored by Phil Hughes's avatar Phil Hughes

Updated rspec to not use sleep when dragging

Fixed JS tests
parent dc73405d
...@@ -71,8 +71,8 @@ ...@@ -71,8 +71,8 @@
welcomeIsHidden () { welcomeIsHidden () {
return $.cookie('issue_board_welcome_hidden') === 'true'; return $.cookie('issue_board_welcome_hidden') === 'true';
}, },
removeList (id) { removeList (id, type = 'blank') {
const list = this.findList('id', id, 'blank'); const list = this.findList('id', id, type);
if (!list) return; if (!list) return;
...@@ -107,6 +107,8 @@ ...@@ -107,6 +107,8 @@
list.removeIssue(issue); list.removeIssue(issue);
} }
issue.removeLabels(listLabels); issue.removeLabels(listLabels);
} else {
listFrom.removeIssue(issue);
} }
}, },
findList (key, val, type = 'label') { findList (key, val, type = 'label') {
......
...@@ -84,6 +84,7 @@ ...@@ -84,6 +84,7 @@
var duration = options.duration || 1000; var duration = options.duration || 1000;
simulateEvent(fromEl, 'mousedown', {button: 0}); simulateEvent(fromEl, 'mousedown', {button: 0});
options.ontap && options.ontap(); options.ontap && options.ontap();
window.SIMULATE_DRAG_ACTIVE = 1;
var dragInterval = setInterval(function loop() { var dragInterval = setInterval(function loop() {
var progress = (new Date().getTime() - startTime) / duration; var progress = (new Date().getTime() - startTime) / duration;
...@@ -100,6 +101,7 @@ ...@@ -100,6 +101,7 @@
options.ondragend && options.ondragend(); options.ondragend && options.ondragend();
simulateEvent(toEl, 'mouseup'); simulateEvent(toEl, 'mouseup');
clearInterval(dragInterval); clearInterval(dragInterval);
window.SIMULATE_DRAG_ACTIVE = 0;
} }
}, 100); }, 100);
......
...@@ -508,6 +508,9 @@ describe 'Issue Boards', feature: true, js: true do ...@@ -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') 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}}});") 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
end end
...@@ -125,39 +125,35 @@ ...@@ -125,39 +125,35 @@
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(1); 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); expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(0);
}); });
it('moves the position of lists', () => { it('moves the position of lists', () => {
gl.issueBoards.BoardsStore.addList(listObj); const listOne = gl.issueBoards.BoardsStore.addList(listObj),
gl.issueBoards.BoardsStore.addList(listObjDuplicate); listTwo = gl.issueBoards.BoardsStore.addList(listObjDuplicate);
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(2); 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(listOne.position).toBe(1);
expect(list.position).toBe(1);
}); });
it('moves an issue from one list to another', (done) => { it('moves an issue from one list to another', (done) => {
gl.issueBoards.BoardsStore.addList(listObj); const listOne = gl.issueBoards.BoardsStore.addList(listObj),
gl.issueBoards.BoardsStore.addList(listObjDuplicate); listTwo = gl.issueBoards.BoardsStore.addList(listObjDuplicate);
expect(gl.issueBoards.BoardsStore.state.lists.length).toBe(2); 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(() => { setTimeout(() => {
expect(list.issues.length).toBe(1); expect(listOne.issues.length).toBe(1);
expect(listTwo.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); expect(listTwo.issues.length).toBe(1);
done(); done();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment