diff --git a/core/test/lib/lantern/metrics/metric-test-utils.js b/core/test/lib/lantern/metrics/metric-test-utils.js index 6df630b37f73..93e1f11f7f4e 100644 --- a/core/test/lib/lantern/metrics/metric-test-utils.js +++ b/core/test/lib/lantern/metrics/metric-test-utils.js @@ -10,6 +10,9 @@ import * as Lantern from '../../../../lib/lantern/types/lantern.js'; import {NetworkAnalyzer} from '../../../../lib/lantern/simulator/network-analyzer.js'; import {Simulator} from '../../../../lib/lantern/simulator/simulator.js'; import * as TraceEngineComputationData from '../../../../lib/lantern/trace-engine-computation-data.js'; +import {polyfillDOMRect} from '../../../../lib/polyfill-dom-rect.js'; + +polyfillDOMRect(); /** * @param {TraceEngine.Types.TraceEvents.TraceEventData[]} traceEvents @@ -40,4 +43,7 @@ async function getComputationDataFromFixture({trace, settings, URL}) { }; } -export {getComputationDataFromFixture}; +export { + runTraceEngine, + getComputationDataFromFixture, +}; diff --git a/core/test/lib/lantern/simulator/simulator-test.js b/core/test/lib/lantern/simulator/simulator-test.js index dcb9474d611a..9b694a311b9a 100644 --- a/core/test/lib/lantern/simulator/simulator-test.js +++ b/core/test/lib/lantern/simulator/simulator-test.js @@ -6,13 +6,15 @@ import assert from 'assert/strict'; +import * as Lantern from '../../../../lib/lantern/metric.js'; import {NetworkNode} from '../../../../lib/lantern/network-node.js'; import {CPUNode} from '../../../../lib/lantern/cpu-node.js'; import {Simulator} from '../../../../lib/lantern/simulator/simulator.js'; import {DNSCache} from '../../../../lib/lantern/simulator/dns-cache.js'; -import {PageDependencyGraph} from '../../../../computed/page-dependency-graph.js'; import {getURLArtifactFromDevtoolsLog, readJson} from '../../../test-utils.js'; import {NetworkRequest} from '../../../../lib/network-request.js'; +import * as TraceEngineComputationData from '../../../../lib/lantern/trace-engine-computation-data.js'; +import {runTraceEngine} from '../metrics/metric-test-utils.js'; const pwaTrace = readJson('../../../fixtures/artifacts/progressive-app/trace.json', import.meta); const pwaDevtoolsLog = readJson('../../../fixtures/artifacts/progressive-app/devtoolslog.json', import.meta); @@ -20,6 +22,16 @@ const pwaDevtoolsLog = readJson('../../../fixtures/artifacts/progressive-app/dev let nextRequestId = 1; let nextTid = 1; +/** + * @param {Lantern.Trace} trace + * @param {Lantern.Simulation.URL} URL + */ +async function createGraph(trace, URL) { + const traceEngineData = await runTraceEngine(trace.traceEvents); + const requests = TraceEngineComputationData.createNetworkRequests(trace, traceEngineData); + return TraceEngineComputationData.createGraph(requests, trace, traceEngineData, URL); +} + function request(opts) { const scheme = opts.scheme || 'http'; const url = `${scheme}://example.com`; @@ -386,16 +398,14 @@ describe('DependencyGraph/Simulator', () => { const URL = getURLArtifactFromDevtoolsLog(devtoolsLog); it('should compute a timeInMs', async () => { - const computedCache = new Map(); - const graph = await PageDependencyGraph.request({trace, devtoolsLog, URL}, {computedCache}); + const graph = await createGraph(trace, URL); const simulator = new Simulator({serverResponseTimeByOrigin}); const result = simulator.simulate(graph); expect(result.timeInMs).toBeGreaterThan(100); }); it('should sort the task event times', async () => { - const computedCache = new Map(); - const graph = await PageDependencyGraph.request({trace, devtoolsLog, URL}, {computedCache}); + const graph = await createGraph(trace, URL); const simulator = new Simulator({serverResponseTimeByOrigin}); const result = simulator.simulate(graph); const nodeTimings = Array.from(result.nodeTimings.entries());