Skip to content

Commit f1eaba8

Browse files
committed
dump-files-node
1 parent 5ead2d6 commit f1eaba8

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

test/lib/visualTestLoop.js

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const { diff } = require('deep-object-diff');
2+
13
(function(exports) {
24

35
exports.getFixture = function(name, original, callback) {
@@ -106,6 +108,32 @@
106108
img.src = filename;
107109
}
108110

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+
109137
exports.visualTestLoop = function(QUnit) {
110138
var _pixelMatch;
111139
var visualCallback;
@@ -175,8 +203,9 @@
175203
testName + ' [' + golden + '] has too many different pixels ' + differentPixels + '(' + okDiff + ') representing ' + percDiff + '% (>' + (percentage * 100) + '%)'
176204
);
177205
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);
180209
}
181210
if ((!isOK && QUnit.debugVisual) || QUnit.recreateVisualRefs) {
182211
generateGolden(getGoldeName(golden), renderedCanvas);

test/node_test_setup.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ global.getAssetName = require('./lib/visualTestLoop').getAssetName;
2929
global.simulateEvent = require('./lib/event.simulate').simulateEvent;
3030
global.imageDataToChalk = function(imageData) {
3131
// actually this does not work on travis-ci, so commenting it out
32-
return '';
3332
var block = String.fromCharCode(9608);
3433
var data = imageData.data;
3534
var width = imageData.width;
@@ -126,4 +125,4 @@ QUnit.assert.strictEqual = function (actual, expected, message) {
126125
expected: getLoggingRepresentation(expected),
127126
message
128127
});
129-
};
128+
};

0 commit comments

Comments
 (0)