Changeset View
Changeset View
Standalone View
Standalone View
cypress/integration/revision-diff.spec.js
Show First 20 Lines • Show All 154 Lines • ▼ Show 20 Lines | cy.get(`#diff_${diffId}`) | ||||
let startLinesStr = swh.revision.formatDiffLineNumbers(diffId, startLines[0], startLines[1]); | let startLinesStr = swh.revision.formatDiffLineNumbers(diffId, startLines[0], startLines[1]); | ||||
let endLinesStr = swh.revision.formatDiffLineNumbers(diffId, endLines[0], endLines[1]); | let endLinesStr = swh.revision.formatDiffLineNumbers(diffId, endLines[0], endLines[1]); | ||||
// highlight a range of lines | // highlight a range of lines | ||||
let startElt = `#${diffId}-unified-diff .hljs-ln-numbers[data-line-number="${startLinesStr}"]`; | let startElt = `#${diffId}-unified-diff .hljs-ln-numbers[data-line-number="${startLinesStr}"]`; | ||||
let endElt = `#${diffId}-unified-diff .hljs-ln-numbers[data-line-number="${endLinesStr}"]`; | let endElt = `#${diffId}-unified-diff .hljs-ln-numbers[data-line-number="${endLinesStr}"]`; | ||||
cy.get(startElt).click(); | cy.get(startElt).click(); | ||||
cy.get('body').type(`{shift}`, { | cy.get(endElt).click({shiftKey: true}); | ||||
release: false | |||||
}); | |||||
cy.get(endElt).click(); | |||||
// check URL fragment has been updated | // check URL fragment has been updated | ||||
const selectedLinesFragment = | const selectedLinesFragment = | ||||
swh.revision.selectedDiffLinesToFragment(startLines, endLines, true); | swh.revision.selectedDiffLinesToFragment(startLines, endLines, true); | ||||
cy.hash().should('be.equal', `#diff_${diffId}+${selectedLinesFragment}`); | cy.hash().should('be.equal', `#diff_${diffId}+${selectedLinesFragment}`); | ||||
if ($(endElt).position().top < $(startElt).position().top) { | if ($(endElt).position().top < $(startElt).position().top) { | ||||
[startLinesStr, endLinesStr] = [endLinesStr, startLinesStr]; | [startLinesStr, endLinesStr] = [endLinesStr, startLinesStr]; | ||||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | cy.get(`#diff_${diffId}`) | ||||
.click() | .click() | ||||
// ensure all asynchronous treatments in the page have been performed | // ensure all asynchronous treatments in the page have been performed | ||||
// before testing diff highlighting | // before testing diff highlighting | ||||
.then(() => { | .then(() => { | ||||
// highlight a range of lines | // highlight a range of lines | ||||
let startElt = `#${singleDiffId} .hljs-ln-numbers[data-line-number="${startLine}"]`; | let startElt = `#${singleDiffId} .hljs-ln-numbers[data-line-number="${startLine}"]`; | ||||
let endElt = `#${singleDiffId} .hljs-ln-numbers[data-line-number="${endLine}"]`; | let endElt = `#${singleDiffId} .hljs-ln-numbers[data-line-number="${endLine}"]`; | ||||
cy.get(startElt).click(); | cy.get(startElt).click(); | ||||
cy.get('body').type(`{shift}`, { | cy.get(endElt).click({shiftKey: true}); | ||||
release: false | |||||
}); | |||||
cy.get(endElt).click(); | |||||
const selectedLinesFragment = | const selectedLinesFragment = | ||||
swh.revision.selectedDiffLinesToFragment(startLines, endLines, false); | swh.revision.selectedDiffLinesToFragment(startLines, endLines, false); | ||||
// check URL fragment has been updated | // check URL fragment has been updated | ||||
cy.hash().should('be.equal', `#diff_${diffId}+${selectedLinesFragment}`); | cy.hash().should('be.equal', `#diff_${diffId}+${selectedLinesFragment}`); | ||||
if ($(endElt).position().top < $(startElt).position().top) { | if ($(endElt).position().top < $(startElt).position().top) { | ||||
▲ Show 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | cy.get(`#diff_${diffId}`) | ||||
let endElt; | let endElt; | ||||
if (endLines[0]) { | if (endLines[0]) { | ||||
endElt = `#${diffId}-from .hljs-ln-numbers[data-line-number="${endLines[0]}"]`; | endElt = `#${diffId}-from .hljs-ln-numbers[data-line-number="${endLines[0]}"]`; | ||||
} else { | } else { | ||||
endElt = `#${diffId}-to .hljs-ln-numbers[data-line-number="${endLines[1]}"]`; | endElt = `#${diffId}-to .hljs-ln-numbers[data-line-number="${endLines[1]}"]`; | ||||
} | } | ||||
cy.get(startElt).click(); | cy.get(startElt).click(); | ||||
cy.get('body').type(`{shift}`, { | cy.get(endElt).click({shiftKey: true}); | ||||
release: false | |||||
}); | |||||
cy.get(endElt).click(); | |||||
const selectedLinesFragment = | const selectedLinesFragment = | ||||
swh.revision.selectedDiffLinesToFragment(startLines, endLines, false); | swh.revision.selectedDiffLinesToFragment(startLines, endLines, false); | ||||
// check URL fragment has been updated | // check URL fragment has been updated | ||||
cy.hash().should('be.equal', `#diff_${diffId}+${selectedLinesFragment}`); | cy.hash().should('be.equal', `#diff_${diffId}+${selectedLinesFragment}`); | ||||
// check lines range is highlighted | // check lines range is highlighted | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |