|
| 1 | +const { diff } = require('deep-object-diff'); |
| 2 | + |
1 | 3 | (function(exports) { |
2 | 4 |
|
3 | 5 | exports.getFixture = function(name, original, callback) { |
|
106 | 108 | img.src = filename; |
107 | 109 | } |
108 | 110 |
|
| 111 | + function dumpFailedTest(testName, original, golden, difference) { |
| 112 | + if (fabric.isLikelyNode && original && difference && golden) { |
| 113 | + var largeCanvas = fabric.util.createCanvasElement(); |
| 114 | + largeCanvas.width = original.width + golden.width + difference.width; |
| 115 | + largeCanvas.height = Math.max(original.height, golden.height, difference.height); |
| 116 | + var ctx = largeCanvas.getContext('2d'); |
| 117 | + ctx.drawImage(original, 0, 0); |
| 118 | + ctx.putImageData(difference, original.width, 0); |
| 119 | + ctx.drawImage(golden, original.width + difference.width, 0); |
| 120 | + var dataUrl = largeCanvas.toDataURL().split(',')[1]; |
| 121 | + console.log('dumping failed test', testName); |
| 122 | + const fileName = localPath('../../cli_output', `${testName.replaceAll(' ', '_')}.png`); |
| 123 | + |
| 124 | + fs.writeFileSync(fileName.replace('file://', ''), dataUrl, { encoding: 'base64' }); |
| 125 | + } |
| 126 | + // else if (original) { |
| 127 | + // original.toBlob(blob => { |
| 128 | + // const formData = new FormData(); |
| 129 | + // formData.append('file', blob, filename); |
| 130 | + // const request = new XMLHttpRequest(); |
| 131 | + // request.open('POST', '/goldens', true); |
| 132 | + // request.send(formData); |
| 133 | + // }, 'image/png'); |
| 134 | + // } |
| 135 | + } |
| 136 | + |
109 | 137 | exports.visualTestLoop = function(QUnit) { |
110 | 138 | var _pixelMatch; |
111 | 139 | var visualCallback; |
|
175 | 203 | testName + ' [' + golden + '] has too many different pixels ' + differentPixels + '(' + okDiff + ') representing ' + percDiff + '% (>' + (percentage * 100) + '%)' |
176 | 204 | ); |
177 | 205 | if (!isOK) { |
178 | | - var stringa = imageDataToChalk(output); |
179 | | - console.log(stringa); |
| 206 | + // var stringa = imageDataToChalk(output); |
| 207 | + // console.log(stringa); |
| 208 | + dumpFailedTest(testName, renderedCanvas, canvas, output); |
180 | 209 | } |
181 | 210 | if ((!isOK && QUnit.debugVisual) || QUnit.recreateVisualRefs) { |
182 | 211 | generateGolden(getGoldeName(golden), renderedCanvas); |
|
0 commit comments