diff options
author | Phil Hughes <me@iamphill.com> | 2016-08-16 09:39:58 +0100 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2016-08-17 17:17:39 +0100 |
commit | 8d0ddbdb366cce8e4a5709619064d8a48f5014f3 (patch) | |
tree | 41f1070432eee62a5790f94ade5ece353b763bd6 | |
parent | dc73405d6e682452379366d9652a403c1be2a77a (diff) | |
download | gitlab-ce-8d0ddbdb366cce8e4a5709619064d8a48f5014f3.tar.gz |
Updated rspec to not use sleep when dragging
Fixed JS tests
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(); |