test: Try workaround for percy snapshot (#1084)

This commit is contained in:
Danny Brown authored and GitHub committed 2019-10-24 15:54:06 -04:00
1 parent 97786b808c
commit 3a12138134
6 files changed
+34 -5

No files matched your search

@@ -306,3 +306,32 @@ Cypress.Commands.add('isInViewport', element => {
}
});
});
/**
* Percy.io Canvas screenshot workaround
*
*/
Cypress.Commands.add('percyCanvasSnapshot', (name, options = {}) => {
function convertCanvas(document) {
document
.querySelectorAll('canvas')
.forEach(selector => canvasToImage(selector));
}
function canvasToImage(selectorOrEl) {
let canvas =
typeof selectorOrEl === 'object'
? selectorOrEl
: document.querySelector(selectorOrEl);
let image = document.createElement('img');
let canvasImageBase64 = canvas.toDataURL();
image.src = canvasImageBase64;
image.style = 'max-width: 100%';
canvas.setAttribute('data-percy-modified', true);
canvas.parentElement.appendChild(image);
canvas.style = 'display: none';
}
cy.percySnapshot(name, { ...options, domTransformation: convertCanvas });
});