diff --git a/CHANGELOG.md b/CHANGELOG.md index c9eb28724..ef9846d13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ We are following the [Keep a Changelog](https://keepachangelog.com/) format. ## [Unreleased](https://github.com/FredrikNoren/ungit/compare/v1.5.10...master) +### Added +- Doubleclick to checkout [#190](https://github.com/FredrikNoren/ungit/issues/190) + ### Changed - Use page.waitForTimeout API in tests [#1422](https://github.com/FredrikNoren/ungit/pull/1422) - Bump Dependencies [#1417](https://github.com/FredrikNoren/ungit/pull/1417) diff --git a/clicktests/environment.js b/clicktests/environment.js index e341f6d93..01641a9af 100644 --- a/clicktests/environment.js +++ b/clicktests/environment.js @@ -265,14 +265,14 @@ class Environment { return this.page.keyboard.press(key); } - async click(selector) { + async click(selector, clickCount) { let elementHandle = await this.waitForElementVisible(selector); try { - await elementHandle.click(); + await elementHandle.click({ clickCount: clickCount }); } catch (err1) { elementHandle = await this.waitForElementVisible(selector); try { - await elementHandle.click(); // try click a second time to reduce test flakiness + await elementHandle.click({ clickCount: clickCount }); // try click a second time to reduce test flakiness } catch (err2) { winston.error(`Failed to click element: ${selector}`); throw err2; diff --git a/clicktests/spec.generic.js b/clicktests/spec.generic.js index 4ace8f8b5..1291cdce0 100644 --- a/clicktests/spec.generic.js +++ b/clicktests/spec.generic.js @@ -14,11 +14,6 @@ const changeTestFile = async (filename, repoPath) => { path: repoPath, }); }; -const checkout = async (branch) => { - await environment.click(`.branch[data-ta-name="${branch}"]`); - await environment.click('[data-ta-action="checkout"]:not([style*="display: none"]) .dropmask'); - await environment.waitForElementVisible(`.ref.branch[data-ta-name="${branch}"].current`); -}; const amendCommit = async () => { try { await environment.page.waitForSelector('.amend-button', { visible: true, timeout: 2000 }); @@ -156,8 +151,10 @@ describe('[GENERIC]', () => { environment.waitForElementVisible('.commit'); }); - it('Checkout a branch', () => { - return checkout('testbranch'); + it('Checkout testbranch with action', async () => { + await environment.click('.branch[data-ta-name="testbranch"]'); + await environment.click('[data-ta-action="checkout"]:not([style*="display: none"]) .dropmask'); + await environment.waitForElementVisible('.ref.branch[data-ta-name="testbranch"].current'); }); it('Create another commit', async () => { @@ -169,8 +166,9 @@ describe('[GENERIC]', () => { return environment.refAction('testbranch', true, 'rebase'); }); - it('Checkout master again', () => { - return checkout('master'); + it('Checkout master with double click', async () => { + await environment.click('.branch[data-ta-name="master"]', 2); + await environment.waitForElementVisible('.ref.branch[data-ta-name="master"].current'); }); it('Create yet another commit', async () => { diff --git a/components/graph/graph.html b/components/graph/graph.html index e341d3a0c..f8416fad2 100644 --- a/components/graph/graph.html +++ b/components/graph/graph.html @@ -23,6 +23,7 @@ data-bind="css: { current: current, remote: isRemoteBranch, dragging: isDragging, focused: selected }, html: displayHtml(true), click: selected, + event: { dblclick: checkout }, dragStart: dragStart, dragEnd: dragEnd, attr: { 'data-ta-name': localRefName, 'data-ta-local': isLocal }" > @@ -36,6 +37,7 @@ data-bind="css: { current: current, remote: isRemoteTag, dragging: isDragging, focused: selected }, html: displayHtml(true), click: selected, + event: { dblclick: checkout }, dragStart: dragStart, dragEnd: dragEnd, attr: { 'data-ta-name': localRefName }" >