From fb85d06de818eb6fc467162f134bf1d2cfeb6336 Mon Sep 17 00:00:00 2001 From: Paul Irish Date: Wed, 1 Aug 2018 15:00:32 -0700 Subject: [PATCH] tests --- lighthouse-core/report/html/renderer/util.js | 24 ++++--------------- .../html/renderer/category-renderer-test.js | 8 +++---- .../performance-category-renderer-test.js | 9 ++++--- .../html/renderer/report-renderer-test.js | 5 ++-- .../test/report/html/renderer/util-test.js | 20 ++++++---------- 5 files changed, 21 insertions(+), 45 deletions(-) diff --git a/lighthouse-core/report/html/renderer/util.js b/lighthouse-core/report/html/renderer/util.js index accf1f942fdd..f0ccf54dee36 100644 --- a/lighthouse-core/report/html/renderer/util.js +++ b/lighthouse-core/report/html/renderer/util.js @@ -59,32 +59,16 @@ class Util { // TODO(phulce): we all agree this is technical debt we should fix if (typeof clone.categories !== 'object') throw new Error('No categories provided.'); clone.reportCategories = Object.values(clone.categories); - Util.smooshAuditResultsIntoCategories(clone.audits, clone.reportCategories); - return clone; - } - /** - * Place the AuditResult into the auditDfn (which has just weight & group) - * @param {Object} audits - * @param {Array} reportCategories - */ - static smooshAuditResultsIntoCategories(audits, reportCategories) { - for (const category of reportCategories) { + // For convenience, smoosh all AuditResults into their auditDfn (which has just weight & group) + for (const category of clone.reportCategories) { category.auditRefs.forEach(auditMeta => { - const result = audits[auditMeta.id]; + const result = clone.audits[auditMeta.id]; auditMeta.result = result; }); } - } - /** - * @param {LH.I18NRendererStrings} rendererFormattedStrings - */ - static updateAllUIStrings(rendererFormattedStrings) { - // TODO(i18n): don't mutate these here but on the LHR and pass that around everywhere - for (const [key, value] of Object.entries(rendererFormattedStrings)) { - Util.UIStrings[key] = value; - } + return clone; } /** diff --git a/lighthouse-core/test/report/html/renderer/category-renderer-test.js b/lighthouse-core/test/report/html/renderer/category-renderer-test.js index a420f4ee751a..77e890be0125 100644 --- a/lighthouse-core/test/report/html/renderer/category-renderer-test.js +++ b/lighthouse-core/test/report/html/renderer/category-renderer-test.js @@ -17,14 +17,14 @@ const DetailsRenderer = require('../../../../report/html/renderer/details-render const CriticalRequestChainRenderer = require( '../../../../report/html/renderer/crc-details-renderer.js'); const CategoryRenderer = require('../../../../report/html/renderer/category-renderer.js'); -const ReportRenderer = require('../../../../report/html/renderer/report-renderer.js'); -const sampleResults = require('../../../results/sample_v2.json'); +const sampleResultsOrig = require('../../../results/sample_v2.json'); const TEMPLATE_FILE = fs.readFileSync(__dirname + '/../../../../report/html/templates.html', 'utf8'); describe('CategoryRenderer', () => { let renderer; + let sampleResults; beforeAll(() => { global.URL = URL; @@ -36,9 +36,7 @@ describe('CategoryRenderer', () => { const detailsRenderer = new DetailsRenderer(dom); renderer = new CategoryRenderer(dom, detailsRenderer); - sampleResults.reportCategories = Object.values(sampleResults.categories); - ReportRenderer.smooshAuditResultsIntoCategories(sampleResults.audits, - sampleResults.reportCategories); + sampleResults = Util.prepareReportResult(sampleResultsOrig); }); afterAll(() => { diff --git a/lighthouse-core/test/report/html/renderer/performance-category-renderer-test.js b/lighthouse-core/test/report/html/renderer/performance-category-renderer-test.js index c02df836240d..a9004146fd80 100644 --- a/lighthouse-core/test/report/html/renderer/performance-category-renderer-test.js +++ b/lighthouse-core/test/report/html/renderer/performance-category-renderer-test.js @@ -17,8 +17,7 @@ const DetailsRenderer = require('../../../../report/html/renderer/details-render const CriticalRequestChainRenderer = require( '../../../../report/html/renderer/crc-details-renderer.js'); const CategoryRenderer = require('../../../../report/html/renderer/category-renderer.js'); -const ReportRenderer = require('../../../../report/html/renderer/report-renderer.js'); -const sampleResults = require('../../../results/sample_v2.json'); +const sampleResultsOrig = require('../../../results/sample_v2.json'); const TEMPLATE_FILE = fs.readFileSync(__dirname + '/../../../../report/html/templates.html', 'utf8'); @@ -26,6 +25,7 @@ const TEMPLATE_FILE = fs.readFileSync(__dirname + describe('PerfCategoryRenderer', () => { let category; let renderer; + let sampleResults; beforeAll(() => { global.URL = URL; @@ -40,10 +40,9 @@ describe('PerfCategoryRenderer', () => { const dom = new DOM(document); const detailsRenderer = new DetailsRenderer(dom); renderer = new PerformanceCategoryRenderer(dom, detailsRenderer); - sampleResults.reportCategories = Object.values(sampleResults.categories); + + sampleResults = Util.prepareReportResult(sampleResultsOrig); category = sampleResults.reportCategories.find(cat => cat.id === 'performance'); - ReportRenderer.smooshAuditResultsIntoCategories(sampleResults.audits, - sampleResults.reportCategories); }); afterAll(() => { diff --git a/lighthouse-core/test/report/html/renderer/report-renderer-test.js b/lighthouse-core/test/report/html/renderer/report-renderer-test.js index 56f70f363480..d921e8788dda 100644 --- a/lighthouse-core/test/report/html/renderer/report-renderer-test.js +++ b/lighthouse-core/test/report/html/renderer/report-renderer-test.js @@ -21,7 +21,7 @@ let PerformanceCategoryRenderer = null; const CriticalRequestChainRenderer = require( '../../../../report/html/renderer/crc-details-renderer.js'); const ReportRenderer = require('../../../../report/html/renderer/report-renderer.js'); -const sampleResults = require('../../../results/sample_v2.json'); +const sampleResultsOrig = require('../../../results/sample_v2.json'); const TIMESTAMP_REGEX = /\d+, \d{4}.*\d+:\d+/; const TEMPLATE_FILE = fs.readFileSync(__dirname + @@ -29,6 +29,7 @@ const TEMPLATE_FILE = fs.readFileSync(__dirname + describe('ReportRenderer', () => { let renderer; + let sampleResults; beforeAll(() => { global.URL = URL; @@ -57,7 +58,7 @@ describe('ReportRenderer', () => { const detailsRenderer = new DetailsRenderer(dom); const categoryRenderer = new CategoryRenderer(dom, detailsRenderer); renderer = new ReportRenderer(dom, categoryRenderer); - sampleResults.reportCategories = Object.values(sampleResults.categories); + sampleResults = Util.prepareReportResult(sampleResultsOrig); }); afterAll(() => { diff --git a/lighthouse-core/test/report/html/renderer/util-test.js b/lighthouse-core/test/report/html/renderer/util-test.js index cf198fc35205..34c75676163c 100644 --- a/lighthouse-core/test/report/html/renderer/util-test.js +++ b/lighthouse-core/test/report/html/renderer/util-test.js @@ -184,32 +184,26 @@ describe('util helpers', () => { }); describe('getFinalScreenshot', () => { - const cloneResults = JSON.parse(JSON.stringify(sampleResults)); - cloneResults.reportCategories = Object.values(cloneResults.categories); - ReportRenderer.smooshAuditResultsIntoCategories(cloneResults.audits, - cloneResults.reportCategories); - it('gets a datauri as a string', () => { + const cloneResults = Util.prepareReportResult(sampleResults); const datauri = Util.getFinalScreenshot(cloneResults); assert.equal(typeof datauri, 'string'); assert.ok(datauri.startsWith('data:image/jpeg;base64,')); }); it('returns null if there is no perf category', () => { - const lhrWithoutPerf = JSON.parse(JSON.stringify(sampleResults)); - delete lhrWithoutPerf.categories.performance; - lhrWithoutPerf.reportCategories = Object.values(lhrWithoutPerf.categories); + const clonedResults = JSON.parse(JSON.stringify(sampleResults)); + delete clonedResults.categories.performance; + const lhrWithoutPerf = Util.prepareReportResult(clonedResults); const datauri = Util.getFinalScreenshot(lhrWithoutPerf); assert.equal(datauri, null); }); it('returns null if there is no final-screenshot audit', () => { - const lhrNoFinalSS = JSON.parse(JSON.stringify(sampleResults)); - delete lhrNoFinalSS.audits['final-screenshot']; - lhrNoFinalSS.reportCategories = Object.values(lhrNoFinalSS.categories); - ReportRenderer.smooshAuditResultsIntoCategories(lhrNoFinalSS.audits, - lhrNoFinalSS.reportCategories); + const clonedResults = JSON.parse(JSON.stringify(sampleResults)); + delete clonedResults.audits['final-screenshot']; + const lhrNoFinalSS = Util.prepareReportResult(clonedResults); const datauri = Util.getFinalScreenshot(lhrNoFinalSS); assert.equal(datauri, null);