1*26ad19fcSEvan Baconimport HMRClient from '../../HMRClient';
2*26ad19fcSEvan Baconimport LoadingView from '../../LoadingView';
3*26ad19fcSEvan Baconimport { fetchThenEvalAsync } from '../fetchThenEval';
4*26ad19fcSEvan Baconimport { loadBundleAsync } from '../loadBundle';
5*26ad19fcSEvan Bacon
6*26ad19fcSEvan Baconjest.mock('../fetchThenEval', () => ({
7*26ad19fcSEvan Bacon  fetchThenEvalAsync: jest.fn(async () => {}),
8*26ad19fcSEvan Bacon}));
9*26ad19fcSEvan Bacon
10*26ad19fcSEvan Baconjest.mock('../../HMRClient', () => ({
11*26ad19fcSEvan Bacon  __esModule: true,
12*26ad19fcSEvan Bacon  default: { registerBundle: jest.fn() },
13*26ad19fcSEvan Bacon}));
14*26ad19fcSEvan Bacon
15*26ad19fcSEvan Baconjest.mock('../../LoadingView');
16*26ad19fcSEvan Bacon
17*26ad19fcSEvan Baconconst originalEnv = process.env.NODE_ENV;
18*26ad19fcSEvan BaconafterEach(() => {
19*26ad19fcSEvan Bacon  process.env.NODE_ENV = originalEnv;
20*26ad19fcSEvan Bacon});
21*26ad19fcSEvan Bacon
22*26ad19fcSEvan Baconit('loads a bundle', async () => {
23*26ad19fcSEvan Bacon  process.env.NODE_ENV = 'development';
24*26ad19fcSEvan Bacon  await loadBundleAsync('/Second.bundle?modulesOnly=true');
25*26ad19fcSEvan Bacon  expect(LoadingView.showMessage).toBeCalledWith('Downloading...', 'load');
26*26ad19fcSEvan Bacon  expect(LoadingView.hide).toBeCalledWith();
27*26ad19fcSEvan Bacon  const url = `/Second.bundle?modulesOnly=true`;
28*26ad19fcSEvan Bacon  expect(HMRClient.registerBundle).toBeCalledWith(url);
29*26ad19fcSEvan Bacon  expect(fetchThenEvalAsync).toBeCalledWith(url);
30*26ad19fcSEvan Bacon});
31*26ad19fcSEvan Baconit('loads a bundle in production', async () => {
32*26ad19fcSEvan Bacon  process.env.NODE_ENV = 'production';
33*26ad19fcSEvan Bacon  await loadBundleAsync('/Second.bundle?modulesOnly=true');
34*26ad19fcSEvan Bacon  expect(LoadingView.showMessage).not.toBeCalled();
35*26ad19fcSEvan Bacon  expect(LoadingView.hide).not.toBeCalled();
36*26ad19fcSEvan Bacon  const url = `/Second.bundle?modulesOnly=true`;
37*26ad19fcSEvan Bacon  expect(HMRClient.registerBundle).not.toBeCalled();
38*26ad19fcSEvan Bacon  expect(fetchThenEvalAsync).toBeCalledWith(url);
39*26ad19fcSEvan Bacon});
40