async function makeMocksForGatherRunner() {
  await td.replaceEsm('../gather/driver/environment.js', {
    getBenchmarkIndex: () => Promise.resolve(150),
    getBrowserVersion: async () => ({userAgent: 'Chrome', milestone: 80}),
    getEnvironmentWarnings: () => [],
  });
  await td.replaceEsm('../lib/emulation.js', {
    emulate: jestMock.fn(),
    throttle: jestMock.fn(),
    clearThrottling: jestMock.fn(),
  });
  await td.replaceEsm('../gather/driver/prepare.js', {
    prepareTargetForNavigationMode: jestMock.fn(),
    prepareTargetForIndividualNavigation: fnAny().mockResolvedValue({warnings: []}),
    enableAsyncStacks: jestMock.fn().mockReturnValue(jestMock.fn()),
  });
  await td.replaceEsm('../gather/driver/storage.js', {
    clearDataForOrigin: jestMock.fn(),
    cleanBrowserCaches: jestMock.fn(),
    getImportantStorageWarning: jestMock.fn(),
  });
  await td.replaceEsm('../gather/driver/navigation.js', {
    gotoURL: fnAny().mockResolvedValue({
      mainDocumentUrl: 'http://example.com',
      warnings: [],
    }),
  });
}
Mocks gatherers for BaseArtifacts that tests for components using GatherRunner
shouldn't concern themselves about.