lighthouse 9.5.0-dev.20230123 → 9.5.0-dev.20230125
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codecov.yml +0 -5
- package/core/audits/accessibility/accesskeys.js +1 -1
- package/core/audits/accessibility/aria-allowed-attr.js +1 -1
- package/core/audits/accessibility/aria-command-name.js +1 -1
- package/core/audits/accessibility/aria-hidden-body.js +1 -1
- package/core/audits/accessibility/aria-hidden-focus.js +1 -1
- package/core/audits/accessibility/aria-input-field-name.js +1 -1
- package/core/audits/accessibility/aria-meter-name.js +1 -1
- package/core/audits/accessibility/aria-progressbar-name.js +1 -1
- package/core/audits/accessibility/aria-required-attr.js +1 -1
- package/core/audits/accessibility/aria-required-children.js +1 -1
- package/core/audits/accessibility/aria-required-parent.js +1 -1
- package/core/audits/accessibility/aria-roles.js +1 -1
- package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
- package/core/audits/accessibility/aria-tooltip-name.js +1 -1
- package/core/audits/accessibility/aria-treeitem-name.js +1 -1
- package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
- package/core/audits/accessibility/aria-valid-attr.js +1 -1
- package/core/audits/accessibility/button-name.js +1 -1
- package/core/audits/accessibility/bypass.js +1 -1
- package/core/audits/accessibility/color-contrast.js +1 -1
- package/core/audits/accessibility/definition-list.js +1 -1
- package/core/audits/accessibility/dlitem.js +1 -1
- package/core/audits/accessibility/document-title.js +1 -1
- package/core/audits/accessibility/duplicate-id-active.js +1 -1
- package/core/audits/accessibility/duplicate-id-aria.js +1 -1
- package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
- package/core/audits/accessibility/frame-title.js +1 -1
- package/core/audits/accessibility/heading-order.js +1 -1
- package/core/audits/accessibility/html-has-lang.js +1 -1
- package/core/audits/accessibility/html-lang-valid.js +1 -1
- package/core/audits/accessibility/image-alt.js +1 -1
- package/core/audits/accessibility/input-image-alt.js +1 -1
- package/core/audits/accessibility/label.js +1 -1
- package/core/audits/accessibility/link-name.js +1 -1
- package/core/audits/accessibility/list.js +1 -1
- package/core/audits/accessibility/listitem.js +1 -1
- package/core/audits/accessibility/meta-refresh.js +1 -1
- package/core/audits/accessibility/meta-viewport.js +1 -1
- package/core/audits/accessibility/object-alt.js +1 -1
- package/core/audits/accessibility/tabindex.js +1 -1
- package/core/audits/accessibility/td-headers-attr.js +1 -1
- package/core/audits/accessibility/th-has-data-cells.js +1 -1
- package/core/audits/accessibility/valid-lang.js +1 -1
- package/core/audits/accessibility/video-caption.js +1 -1
- package/core/audits/audit.js +1 -1
- package/core/audits/byte-efficiency/legacy-javascript.d.ts +1 -0
- package/core/audits/byte-efficiency/legacy-javascript.js +7 -3
- package/core/audits/dobetterweb/uses-http2.d.ts +5 -2
- package/core/audits/dobetterweb/uses-http2.js +12 -7
- package/core/audits/network-requests.js +7 -6
- package/core/audits/third-party-facades.d.ts +3 -2
- package/core/audits/third-party-facades.js +12 -9
- package/core/audits/third-party-summary.d.ts +7 -6
- package/core/audits/third-party-summary.js +16 -14
- package/core/audits/valid-source-maps.d.ts +5 -3
- package/core/audits/valid-source-maps.js +11 -9
- package/core/computed/entity-classification.d.ts +29 -0
- package/core/computed/entity-classification.js +102 -0
- package/core/computed/metrics/responsiveness.js +5 -2
- package/core/computed/page-dependency-graph.js +1 -1
- package/core/computed/resource-summary.d.ts +4 -2
- package/core/computed/resource-summary.js +8 -5
- package/core/gather/gatherers/accessibility.js +3 -1
- package/core/lib/network-request.d.ts +2 -0
- package/core/lib/network-request.js +3 -0
- package/core/lib/stack-packs.js +4 -0
- package/core/lib/tracehouse/trace-processor.d.ts +14 -5
- package/core/lib/tracehouse/trace-processor.js +85 -30
- package/core/lib/traces/metric-trace-events.js +1 -1
- package/core/lib/url-utils.js +1 -1
- package/core/runner.d.ts +10 -0
- package/core/runner.js +48 -0
- package/dist/report/bundle.esm.js +724 -687
- package/dist/report/flow.js +25 -15
- package/dist/report/standalone.js +25 -15
- package/flow-report/src/common.tsx +1 -1
- package/flow-report/src/i18n/i18n.tsx +17 -16
- package/flow-report/src/sidebar/sidebar.tsx +2 -2
- package/flow-report/src/summary/category.tsx +6 -6
- package/flow-report/src/summary/summary.tsx +2 -2
- package/package.json +7 -8
- package/report/renderer/category-renderer.js +19 -17
- package/report/renderer/crc-details-renderer.js +6 -6
- package/report/renderer/details-renderer.js +7 -6
- package/report/renderer/dom.js +1 -1
- package/report/renderer/element-screenshot-renderer.js +3 -3
- package/report/renderer/performance-category-renderer.js +17 -15
- package/report/renderer/pwa-category-renderer.js +5 -4
- package/report/renderer/report-globals.d.ts +21 -0
- package/report/renderer/report-globals.js +49 -0
- package/report/renderer/report-renderer.js +22 -20
- package/report/renderer/report-ui-features.js +9 -8
- package/report/renderer/report-utils.d.ts +116 -0
- package/report/renderer/{util.js → report-utils.js} +81 -429
- package/report/renderer/snippet-renderer.js +3 -2
- package/report/test/renderer/category-renderer-test.js +9 -4
- package/report/test/renderer/crc-details-renderer-test.js +7 -3
- package/report/test/renderer/details-renderer-test.js +7 -3
- package/report/test/renderer/dom-test.js +7 -3
- package/report/test/renderer/element-screenshot-renderer-test.js +8 -4
- package/report/test/renderer/performance-category-renderer-test.js +14 -9
- package/report/test/renderer/pwa-category-renderer-test.js +10 -5
- package/report/test/renderer/report-renderer-test.js +2 -2
- package/report/test/renderer/report-ui-features-test.js +3 -3
- package/report/test/renderer/{util-test.js → report-utils-test.js} +36 -234
- package/report/test/renderer/snippet-renderer-test.js +7 -3
- package/shared/localization/format.js +5 -2
- package/shared/localization/locales/ar-XB.json +50 -50
- package/shared/localization/locales/ar.json +50 -50
- package/shared/localization/locales/bg.json +50 -50
- package/shared/localization/locales/ca.json +50 -50
- package/shared/localization/locales/cs.json +50 -50
- package/shared/localization/locales/da.json +50 -50
- package/shared/localization/locales/de.json +50 -50
- package/shared/localization/locales/el.json +50 -50
- package/shared/localization/locales/en-GB.json +50 -50
- package/shared/localization/locales/en-US.json +128 -98
- package/shared/localization/locales/en-XA.json +50 -50
- package/shared/localization/locales/en-XL.json +128 -98
- package/shared/localization/locales/es-419.json +50 -50
- package/shared/localization/locales/es.json +50 -50
- package/shared/localization/locales/fi.json +50 -50
- package/shared/localization/locales/fil.json +50 -50
- package/shared/localization/locales/fr.json +50 -50
- package/shared/localization/locales/he.json +50 -50
- package/shared/localization/locales/hi.json +50 -50
- package/shared/localization/locales/hr.json +50 -50
- package/shared/localization/locales/hu.json +50 -50
- package/shared/localization/locales/id.json +50 -50
- package/shared/localization/locales/it.json +50 -50
- package/shared/localization/locales/ja.json +50 -50
- package/shared/localization/locales/ko.json +50 -50
- package/shared/localization/locales/lt.json +50 -50
- package/shared/localization/locales/lv.json +50 -50
- package/shared/localization/locales/nl.json +50 -50
- package/shared/localization/locales/no.json +50 -50
- package/shared/localization/locales/pl.json +50 -50
- package/shared/localization/locales/pt-PT.json +50 -50
- package/shared/localization/locales/pt.json +50 -50
- package/shared/localization/locales/ro.json +50 -50
- package/shared/localization/locales/ru.json +50 -50
- package/shared/localization/locales/sk.json +50 -50
- package/shared/localization/locales/sl.json +50 -50
- package/shared/localization/locales/sr-Latn.json +50 -50
- package/shared/localization/locales/sr.json +50 -50
- package/shared/localization/locales/sv.json +50 -50
- package/shared/localization/locales/ta.json +50 -50
- package/shared/localization/locales/te.json +50 -50
- package/shared/localization/locales/th.json +50 -50
- package/shared/localization/locales/tr.json +50 -50
- package/shared/localization/locales/uk.json +50 -50
- package/shared/localization/locales/vi.json +50 -50
- package/shared/localization/locales/zh-HK.json +50 -50
- package/shared/localization/locales/zh-TW.json +50 -50
- package/shared/localization/locales/zh.json +50 -50
- package/shared/test/util-test.js +214 -0
- package/shared/util.d.ts +122 -0
- package/shared/util.js +332 -0
- package/tsconfig.json +0 -2
- package/types/artifacts.d.ts +21 -2
- package/types/lhr/lhr.d.ts +33 -0
- package/core/lib/minify-trace.d.ts +0 -6
- package/core/lib/minify-trace.js +0 -172
- package/core/util.cjs +0 -845
- package/core/util.d.cts +0 -342
- package/report/renderer/util.d.ts +0 -342
|
@@ -8,11 +8,11 @@ import assert from 'assert/strict';
|
|
|
8
8
|
|
|
9
9
|
import jsdom from 'jsdom';
|
|
10
10
|
|
|
11
|
-
import {Util} from '../../renderer/util.js';
|
|
12
11
|
import {I18nFormatter} from '../../renderer/i18n-formatter.js';
|
|
13
12
|
import {DOM} from '../../renderer/dom.js';
|
|
14
13
|
import {DetailsRenderer} from '../../renderer/details-renderer.js';
|
|
15
14
|
import {CriticalRequestChainRenderer} from '../../renderer/crc-details-renderer.js';
|
|
15
|
+
import {Globals} from '../../renderer/report-globals.js';
|
|
16
16
|
|
|
17
17
|
const superLongURL =
|
|
18
18
|
'https://example.com/thisIsASuperLongURLThatWillTriggerFilenameTruncationWhichWeWantToTest.js';
|
|
@@ -73,7 +73,11 @@ describe('DetailsRenderer', () => {
|
|
|
73
73
|
let detailsRenderer;
|
|
74
74
|
|
|
75
75
|
before(() => {
|
|
76
|
-
|
|
76
|
+
Globals.apply({
|
|
77
|
+
providedStrings: {},
|
|
78
|
+
i18n: new I18nFormatter('en'),
|
|
79
|
+
reportJson: null,
|
|
80
|
+
});
|
|
77
81
|
|
|
78
82
|
const {document} = new jsdom.JSDOM().window;
|
|
79
83
|
dom = new DOM(document);
|
|
@@ -81,7 +85,7 @@ describe('DetailsRenderer', () => {
|
|
|
81
85
|
});
|
|
82
86
|
|
|
83
87
|
after(() => {
|
|
84
|
-
|
|
88
|
+
Globals.i18n = undefined;
|
|
85
89
|
});
|
|
86
90
|
|
|
87
91
|
it('renders tree structure', () => {
|
|
@@ -9,9 +9,9 @@ import assert from 'assert/strict';
|
|
|
9
9
|
import jsdom from 'jsdom';
|
|
10
10
|
|
|
11
11
|
import {DOM} from '../../renderer/dom.js';
|
|
12
|
-
import {Util} from '../../renderer/util.js';
|
|
13
12
|
import {I18nFormatter} from '../../renderer/i18n-formatter.js';
|
|
14
13
|
import {DetailsRenderer} from '../../renderer/details-renderer.js';
|
|
14
|
+
import {Globals} from '../../renderer/report-globals.js';
|
|
15
15
|
|
|
16
16
|
describe('DetailsRenderer', () => {
|
|
17
17
|
let renderer;
|
|
@@ -23,12 +23,16 @@ describe('DetailsRenderer', () => {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
before(() => {
|
|
26
|
-
|
|
26
|
+
Globals.apply({
|
|
27
|
+
providedStrings: {},
|
|
28
|
+
i18n: new I18nFormatter('en'),
|
|
29
|
+
reportJson: null,
|
|
30
|
+
});
|
|
27
31
|
createRenderer();
|
|
28
32
|
});
|
|
29
33
|
|
|
30
34
|
after(() => {
|
|
31
|
-
|
|
35
|
+
Globals.i18n = undefined;
|
|
32
36
|
});
|
|
33
37
|
|
|
34
38
|
describe('render', () => {
|
|
@@ -10,8 +10,8 @@ import jestMock from 'jest-mock';
|
|
|
10
10
|
import jsdom from 'jsdom';
|
|
11
11
|
|
|
12
12
|
import {DOM} from '../../renderer/dom.js';
|
|
13
|
-
import {Util} from '../../renderer/util.js';
|
|
14
13
|
import {I18nFormatter} from '../../renderer/i18n-formatter.js';
|
|
14
|
+
import {Globals} from '../../renderer/report-globals.js';
|
|
15
15
|
|
|
16
16
|
describe('DOM', () => {
|
|
17
17
|
/** @type {DOM} */
|
|
@@ -20,7 +20,11 @@ describe('DOM', () => {
|
|
|
20
20
|
let nativeCreateObjectURL;
|
|
21
21
|
|
|
22
22
|
before(() => {
|
|
23
|
-
|
|
23
|
+
Globals.apply({
|
|
24
|
+
providedStrings: {},
|
|
25
|
+
i18n: new I18nFormatter('en'),
|
|
26
|
+
reportJson: null,
|
|
27
|
+
});
|
|
24
28
|
window = new jsdom.JSDOM().window;
|
|
25
29
|
|
|
26
30
|
// The Node version of URL.createObjectURL isn't compatible with the jsdom blob type,
|
|
@@ -33,7 +37,7 @@ describe('DOM', () => {
|
|
|
33
37
|
});
|
|
34
38
|
|
|
35
39
|
after(() => {
|
|
36
|
-
|
|
40
|
+
Globals.i18n = undefined;
|
|
37
41
|
URL.createObjectURL = nativeCreateObjectURL;
|
|
38
42
|
});
|
|
39
43
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
import jsdom from 'jsdom';
|
|
8
8
|
|
|
9
9
|
import {ElementScreenshotRenderer} from '../../renderer/element-screenshot-renderer.js';
|
|
10
|
-
import {Util} from '../../renderer/util.js';
|
|
11
10
|
import {I18nFormatter} from '../../renderer/i18n-formatter.js';
|
|
12
11
|
import {DOM} from '../../renderer/dom.js';
|
|
12
|
+
import {Globals} from '../../renderer/report-globals.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @param {{left: number, top: number, width: number, height:number}} opts
|
|
@@ -27,15 +27,19 @@ describe('ElementScreenshotRenderer', () => {
|
|
|
27
27
|
let dom;
|
|
28
28
|
|
|
29
29
|
before(() => {
|
|
30
|
-
|
|
30
|
+
Globals.apply({
|
|
31
|
+
providedStrings: {},
|
|
32
|
+
i18n: new I18nFormatter('en'),
|
|
33
|
+
reportJson: null,
|
|
34
|
+
});
|
|
31
35
|
|
|
32
36
|
const {document} = new jsdom.JSDOM().window;
|
|
33
37
|
dom = new DOM(document);
|
|
34
|
-
|
|
38
|
+
Globals.resetUniqueSuffix();
|
|
35
39
|
});
|
|
36
40
|
|
|
37
41
|
after(() => {
|
|
38
|
-
|
|
42
|
+
Globals.i18n = undefined;
|
|
39
43
|
});
|
|
40
44
|
|
|
41
45
|
it('renders screenshot', () => {
|
|
@@ -8,12 +8,13 @@ import assert from 'assert/strict';
|
|
|
8
8
|
|
|
9
9
|
import jsdom from 'jsdom';
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import {ReportUtils} from '../../renderer/report-utils.js';
|
|
12
12
|
import {I18nFormatter} from '../../renderer/i18n-formatter.js';
|
|
13
13
|
import {DOM} from '../../renderer/dom.js';
|
|
14
14
|
import {DetailsRenderer} from '../../renderer/details-renderer.js';
|
|
15
15
|
import {PerformanceCategoryRenderer} from '../../renderer/performance-category-renderer.js';
|
|
16
16
|
import {readJson} from '../../../core/test/test-utils.js';
|
|
17
|
+
import {Globals} from '../../renderer/report-globals.js';
|
|
17
18
|
|
|
18
19
|
const sampleResultsOrig = readJson('../../../core/test/results/sample_v2.json', import.meta);
|
|
19
20
|
|
|
@@ -23,7 +24,11 @@ describe('PerfCategoryRenderer', () => {
|
|
|
23
24
|
let sampleResults;
|
|
24
25
|
|
|
25
26
|
before(() => {
|
|
26
|
-
|
|
27
|
+
Globals.apply({
|
|
28
|
+
providedStrings: {},
|
|
29
|
+
i18n: new I18nFormatter('en'),
|
|
30
|
+
reportJson: null,
|
|
31
|
+
});
|
|
27
32
|
|
|
28
33
|
const {document} = new jsdom.JSDOM().window;
|
|
29
34
|
const dom = new DOM(document);
|
|
@@ -31,12 +36,12 @@ describe('PerfCategoryRenderer', () => {
|
|
|
31
36
|
renderer = new PerformanceCategoryRenderer(dom, detailsRenderer);
|
|
32
37
|
|
|
33
38
|
// TODO: don't call a LH.ReportResult `sampleResults`, which is typically always LH.Result
|
|
34
|
-
sampleResults =
|
|
39
|
+
sampleResults = ReportUtils.prepareReportResult(sampleResultsOrig);
|
|
35
40
|
category = sampleResults.categories.performance;
|
|
36
41
|
});
|
|
37
42
|
|
|
38
43
|
after(() => {
|
|
39
|
-
|
|
44
|
+
Globals.i18n = undefined;
|
|
40
45
|
});
|
|
41
46
|
|
|
42
47
|
it('renders the category header', () => {
|
|
@@ -151,7 +156,7 @@ describe('PerfCategoryRenderer', () => {
|
|
|
151
156
|
const oppAudits = category.auditRefs.filter(audit =>
|
|
152
157
|
audit.result.details &&
|
|
153
158
|
audit.result.details.type === 'opportunity' &&
|
|
154
|
-
!
|
|
159
|
+
!ReportUtils.showAsPassed(audit.result));
|
|
155
160
|
const oppElements = [...categoryDOM.querySelectorAll('.lh-audit--load-opportunity')];
|
|
156
161
|
expect(oppElements.map(e => e.id).sort()).toEqual(oppAudits.map(a => a.id).sort());
|
|
157
162
|
expect(oppElements.length).toBeGreaterThan(0);
|
|
@@ -220,7 +225,7 @@ describe('PerfCategoryRenderer', () => {
|
|
|
220
225
|
const diagnosticAuditIds = category.auditRefs.filter(audit => {
|
|
221
226
|
return !audit.group &&
|
|
222
227
|
!(audit.result.details && audit.result.details.type === 'opportunity') &&
|
|
223
|
-
!
|
|
228
|
+
!ReportUtils.showAsPassed(audit.result);
|
|
224
229
|
}).map(audit => audit.id).sort();
|
|
225
230
|
assert.ok(diagnosticAuditIds.length > 0);
|
|
226
231
|
|
|
@@ -235,7 +240,7 @@ describe('PerfCategoryRenderer', () => {
|
|
|
235
240
|
|
|
236
241
|
const passedAudits = category.auditRefs.filter(audit =>
|
|
237
242
|
!audit.group &&
|
|
238
|
-
|
|
243
|
+
ReportUtils.showAsPassed(audit.result));
|
|
239
244
|
const passedElements = passedSection.querySelectorAll('.lh-audit');
|
|
240
245
|
assert.equal(passedElements.length, passedAudits.length);
|
|
241
246
|
});
|
|
@@ -332,7 +337,7 @@ Array [
|
|
|
332
337
|
});
|
|
333
338
|
|
|
334
339
|
it('also appends device and version number', () => {
|
|
335
|
-
|
|
340
|
+
Globals.reportJson = {
|
|
336
341
|
configSettings: {formFactor: 'mobile'},
|
|
337
342
|
lighthouseVersion: '6.0.0',
|
|
338
343
|
};
|
|
@@ -353,7 +358,7 @@ Array [
|
|
|
353
358
|
]
|
|
354
359
|
`);
|
|
355
360
|
} finally {
|
|
356
|
-
|
|
361
|
+
Globals.reportJson = null;
|
|
357
362
|
}
|
|
358
363
|
});
|
|
359
364
|
|
|
@@ -8,12 +8,13 @@ import assert from 'assert/strict';
|
|
|
8
8
|
|
|
9
9
|
import jsdom from 'jsdom';
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import {ReportUtils, UIStrings} from '../../renderer/report-utils.js';
|
|
12
12
|
import {I18nFormatter} from '../../renderer/i18n-formatter.js';
|
|
13
13
|
import {DOM} from '../../renderer/dom.js';
|
|
14
14
|
import {DetailsRenderer} from '../../renderer/details-renderer.js';
|
|
15
15
|
import {PwaCategoryRenderer} from '../../renderer/pwa-category-renderer.js';
|
|
16
16
|
import {readJson} from '../../../core/test/test-utils.js';
|
|
17
|
+
import {Globals} from '../../renderer/report-globals.js';
|
|
17
18
|
|
|
18
19
|
const sampleResultsOrig = readJson('../../../core/test/results/sample_v2.json', import.meta);
|
|
19
20
|
|
|
@@ -23,14 +24,18 @@ describe('PwaCategoryRenderer', () => {
|
|
|
23
24
|
let sampleResults;
|
|
24
25
|
|
|
25
26
|
before(() => {
|
|
26
|
-
|
|
27
|
+
Globals.apply({
|
|
28
|
+
providedStrings: {},
|
|
29
|
+
i18n: new I18nFormatter('en'),
|
|
30
|
+
reportJson: null,
|
|
31
|
+
});
|
|
27
32
|
|
|
28
33
|
const {document} = new jsdom.JSDOM().window;
|
|
29
34
|
const dom = new DOM(document);
|
|
30
35
|
const detailsRenderer = new DetailsRenderer(dom);
|
|
31
36
|
pwaRenderer = new PwaCategoryRenderer(dom, detailsRenderer);
|
|
32
37
|
|
|
33
|
-
sampleResults =
|
|
38
|
+
sampleResults = ReportUtils.prepareReportResult(sampleResultsOrig);
|
|
34
39
|
});
|
|
35
40
|
|
|
36
41
|
beforeEach(() => {
|
|
@@ -40,7 +45,7 @@ describe('PwaCategoryRenderer', () => {
|
|
|
40
45
|
});
|
|
41
46
|
|
|
42
47
|
after(() => {
|
|
43
|
-
|
|
48
|
+
Globals.i18n = undefined;
|
|
44
49
|
});
|
|
45
50
|
|
|
46
51
|
it('renders the regular audits', () => {
|
|
@@ -258,7 +263,7 @@ describe('PwaCategoryRenderer', () => {
|
|
|
258
263
|
|
|
259
264
|
const percentageElem = badgeGauge.querySelector('.lh-gauge__percentage');
|
|
260
265
|
assert.strictEqual(percentageElem.textContent, '?');
|
|
261
|
-
assert.strictEqual(percentageElem.title,
|
|
266
|
+
assert.strictEqual(percentageElem.title, UIStrings.errorLabel);
|
|
262
267
|
});
|
|
263
268
|
|
|
264
269
|
it('renders score gauges with unique ids for items in <defs>', () => {
|
|
@@ -9,7 +9,7 @@ import assert from 'assert/strict';
|
|
|
9
9
|
import jsdom from 'jsdom';
|
|
10
10
|
import jestMock from 'jest-mock';
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import {ReportUtils} from '../../renderer/report-utils.js';
|
|
13
13
|
import {DOM} from '../../renderer/dom.js';
|
|
14
14
|
import {DetailsRenderer} from '../../renderer/details-renderer.js';
|
|
15
15
|
import {CategoryRenderer} from '../../renderer/category-renderer.js';
|
|
@@ -41,7 +41,7 @@ describe('ReportRenderer', () => {
|
|
|
41
41
|
const detailsRenderer = new DetailsRenderer(dom);
|
|
42
42
|
const categoryRenderer = new CategoryRenderer(dom, detailsRenderer);
|
|
43
43
|
renderer = new ReportRenderer(dom, categoryRenderer);
|
|
44
|
-
sampleResults =
|
|
44
|
+
sampleResults = ReportUtils.prepareReportResult(sampleResultsOrig);
|
|
45
45
|
});
|
|
46
46
|
|
|
47
47
|
after(() => {
|
|
@@ -10,7 +10,7 @@ import jsdom from 'jsdom';
|
|
|
10
10
|
import jestMock from 'jest-mock';
|
|
11
11
|
|
|
12
12
|
import {reportAssets} from '../../generator/report-assets.js';
|
|
13
|
-
import {
|
|
13
|
+
import {ReportUtils, UIStrings} from '../../renderer/report-utils.js';
|
|
14
14
|
import {DOM} from '../../renderer/dom.js';
|
|
15
15
|
import {DetailsRenderer} from '../../renderer/details-renderer.js';
|
|
16
16
|
import {ReportUIFeatures} from '../../renderer/report-ui-features.js';
|
|
@@ -76,7 +76,7 @@ describe('ReportUIFeatures', () => {
|
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
dom = new DOM(document.window.document);
|
|
79
|
-
sampleResults =
|
|
79
|
+
sampleResults = ReportUtils.prepareReportResult(sampleResultsOrig);
|
|
80
80
|
render(sampleResults);
|
|
81
81
|
});
|
|
82
82
|
|
|
@@ -550,7 +550,7 @@ describe('ReportUIFeatures', () => {
|
|
|
550
550
|
const container = render(sampleResults);
|
|
551
551
|
for (const node of dom.findAll('[data-i18n]', container)) {
|
|
552
552
|
const val = node.getAttribute('data-i18n');
|
|
553
|
-
assert.ok(val in
|
|
553
|
+
assert.ok(val in UIStrings, `Invalid data-i18n value of: "${val}" not found.`);
|
|
554
554
|
}
|
|
555
555
|
});
|
|
556
556
|
});
|