13d6e487dSEvan Baconimport { vol } from 'memfs'; 23d6e487dSEvan Bacon 33d6e487dSEvan Baconimport { startInterfaceAsync } from '../../start/interface/startInterface'; 43d6e487dSEvan Baconimport { startBundlerAsync } from '../startBundler'; 53d6e487dSEvan Bacon 63d6e487dSEvan Baconjest.mock('../../start/server/DevServerManager', () => ({ 73d6e487dSEvan Bacon DevServerManager: jest.fn(() => ({ 83d6e487dSEvan Bacon startAsync: jest.fn(), 93d6e487dSEvan Bacon getDefaultDevServer: jest.fn(), 1033643b60SEvan Bacon bootstrapTypeScriptAsync: jest.fn(), 11*6a750d06SEvan Bacon watchEnvironmentVariables: jest.fn(), 123d6e487dSEvan Bacon })), 133d6e487dSEvan Bacon})); 143d6e487dSEvan Bacon 1529128565SEvan Baconjest.mock('../../utils/interactive', () => ({ 1629128565SEvan Bacon isInteractive: jest.fn(() => true), 173d6e487dSEvan Bacon})); 183d6e487dSEvan Bacon 193d6e487dSEvan Baconjest.mock('@expo/config', () => ({ 203d6e487dSEvan Bacon getConfig: jest.fn(() => ({ 213d6e487dSEvan Bacon exp: { 223d6e487dSEvan Bacon platforms: ['ios', 'android'], 233d6e487dSEvan Bacon }, 243d6e487dSEvan Bacon })), 253d6e487dSEvan Bacon})); 263d6e487dSEvan Bacon 273d6e487dSEvan Baconjest.mock('../../start/interface/startInterface', () => ({ 283d6e487dSEvan Bacon startInterfaceAsync: jest.fn(), 293d6e487dSEvan Bacon})); 303d6e487dSEvan Bacon 313d6e487dSEvan Bacondescribe(startBundlerAsync, () => { 323d6e487dSEvan Bacon afterEach(() => vol.reset()); 333d6e487dSEvan Bacon 343d6e487dSEvan Bacon it(`starts in headless mode`, async () => { 353d6e487dSEvan Bacon const manager = await startBundlerAsync('/', { 363d6e487dSEvan Bacon headless: true, 373d6e487dSEvan Bacon port: 3000, 383d6e487dSEvan Bacon }); 393d6e487dSEvan Bacon 403d6e487dSEvan Bacon expect(manager.startAsync).toHaveBeenCalledWith([ 413d6e487dSEvan Bacon { 423d6e487dSEvan Bacon options: { 433d6e487dSEvan Bacon devClient: true, 443d6e487dSEvan Bacon headless: true, 453d6e487dSEvan Bacon location: {}, 463d6e487dSEvan Bacon port: 3000, 473d6e487dSEvan Bacon }, 483d6e487dSEvan Bacon type: 'metro', 493d6e487dSEvan Bacon }, 503d6e487dSEvan Bacon ]); 513d6e487dSEvan Bacon expect(manager.getDefaultDevServer).toBeCalled(); 523d6e487dSEvan Bacon }); 533d6e487dSEvan Bacon 543d6e487dSEvan Bacon it(`starts a server`, async () => { 553d6e487dSEvan Bacon const manager = await startBundlerAsync('/', { 563d6e487dSEvan Bacon headless: false, 573d6e487dSEvan Bacon port: 3000, 583d6e487dSEvan Bacon }); 593d6e487dSEvan Bacon 603d6e487dSEvan Bacon expect(manager.startAsync).toHaveBeenCalledWith([ 613d6e487dSEvan Bacon { 623d6e487dSEvan Bacon options: { 633d6e487dSEvan Bacon devClient: true, 643d6e487dSEvan Bacon headless: false, 653d6e487dSEvan Bacon location: {}, 663d6e487dSEvan Bacon port: 3000, 673d6e487dSEvan Bacon }, 683d6e487dSEvan Bacon type: 'metro', 693d6e487dSEvan Bacon }, 703d6e487dSEvan Bacon ]); 713d6e487dSEvan Bacon expect(startInterfaceAsync).toBeCalled(); 723d6e487dSEvan Bacon expect(manager.getDefaultDevServer).not.toBeCalled(); 733d6e487dSEvan Bacon }); 743d6e487dSEvan Bacon}); 75