Skip to content

Commit

Permalink
feat: save each screenshot asset individually
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickhulce committed Jan 31, 2017
1 parent 111a519 commit f8abdf6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
19 changes: 15 additions & 4 deletions lighthouse-core/lib/asset-saver.js
Expand Up @@ -118,9 +118,11 @@ function prepareAssets(artifacts, results) {
.then(screenshots => {
const traceData = Object.assign({}, trace);
const html = screenshotDump(screenshots, results);
const imageData = screenshots.map(shot => shot.datauri.replace(/^.*?base64,/, ''));

assets.push({
traceData,
imageData,
html
});
});
Expand All @@ -139,11 +141,20 @@ function saveAssets(artifacts, results) {
assets.forEach((data, index) => {
const filenamePrefix = getFilenamePrefix(results);
const traceData = data.traceData;
fs.writeFileSync(`${filenamePrefix}-${index}.trace.json`, JSON.stringify(traceData, null, 2));
log.log('trace file saved to disk', filenamePrefix);

fs.writeFileSync(`${filenamePrefix}-${index}.screenshots.html`, data.html);
log.log('screenshots saved to disk', filenamePrefix);
const traceFilename = `${filenamePrefix}-${index}.trace.json`;
fs.writeFileSync(traceFilename, JSON.stringify(traceData, null, 2));
log.log('trace file saved to disk', traceFilename);

data.imageData.forEach((imageData, imageIndex) => {
const filename = `${filenamePrefix}-${index}-screenshot${imageIndex}.jpg`;
fs.writeFileSync(filename, imageData, 'base64');
log.log('screenshot saved to disk', filename);
});

const screenshotsFilename = `${filenamePrefix}-${index}.screenshots.html`;
fs.writeFileSync(screenshotsFilename, data.html);
log.log('screenshots saved to disk', screenshotsFilename);
});
});
}
Expand Down
8 changes: 8 additions & 0 deletions lighthouse-core/test/lib/asset-saver-test.js
Expand Up @@ -93,5 +93,13 @@ describe('asset-saver helper', () => {
assert.ok(ssFileContents.includes('{"timestamp":674089419.919'));
fs.unlinkSync(ssFilename);
});

it('each screenshot file saved to disk', () => {
screenshotFilmstrip.forEach((_, index) => {
const filename = assetSaver.getFilenamePrefix(options) + `-0-screenshot${index}.jpg`;
assert.ok(fs.existsSync(filename));
fs.unlinkSync(filename);
});
});
});
});

0 comments on commit f8abdf6

Please sign in to comment.