1082815dcSEvan Baconimport { vol } from 'memfs'; 2082815dcSEvan Bacon 3*97e1898cSEvan Baconimport { getConfig, getWebOutputPath } from '../Config'; 4082815dcSEvan Bacon 5082815dcSEvan Baconjest.mock('fs'); 6082815dcSEvan Bacon 7*97e1898cSEvan Bacondescribe(getWebOutputPath, () => { 8082815dcSEvan Bacon beforeAll(() => { 9082815dcSEvan Bacon const packageJson = JSON.stringify( 10082815dcSEvan Bacon { 11082815dcSEvan Bacon name: 'testing123', 12082815dcSEvan Bacon version: '0.1.0', 13082815dcSEvan Bacon main: 'index.js', 14082815dcSEvan Bacon }, 15082815dcSEvan Bacon null, 16082815dcSEvan Bacon 2 17082815dcSEvan Bacon ); 18082815dcSEvan Bacon 19082815dcSEvan Bacon const appJson = { 20082815dcSEvan Bacon name: 'testing 123', 21082815dcSEvan Bacon version: '0.1.0', 22082815dcSEvan Bacon slug: 'testing-123', 23082815dcSEvan Bacon sdkVersion: '100.0.0', 24082815dcSEvan Bacon }; 25082815dcSEvan Bacon 26082815dcSEvan Bacon vol.fromJSON({ 27082815dcSEvan Bacon '/standard/package.json': JSON.stringify(packageJson), 28082815dcSEvan Bacon '/standard/app.json': JSON.stringify({ expo: appJson }), 29082815dcSEvan Bacon '/custom/package.json': JSON.stringify(packageJson), 30082815dcSEvan Bacon '/custom/app.json': JSON.stringify({ 31082815dcSEvan Bacon expo: { ...appJson, web: { build: { output: 'defined-in-config' } } }, 32082815dcSEvan Bacon }), 33082815dcSEvan Bacon }); 34082815dcSEvan Bacon }); 35082815dcSEvan Bacon afterAll(() => vol.reset()); 36082815dcSEvan Bacon 37082815dcSEvan Bacon it('uses the default output build path for web', () => { 38*97e1898cSEvan Bacon const { exp } = getConfig('/standard'); 39082815dcSEvan Bacon const outputPath = getWebOutputPath(exp); 40082815dcSEvan Bacon expect(outputPath).toBe('web-build'); 41082815dcSEvan Bacon }); 42082815dcSEvan Bacon 43082815dcSEvan Bacon it('uses a custom output build path from the config', () => { 44*97e1898cSEvan Bacon const { exp } = getConfig('/custom'); 45082815dcSEvan Bacon const outputPath = getWebOutputPath(exp); 46082815dcSEvan Bacon expect(outputPath).toBe('defined-in-config'); 47082815dcSEvan Bacon }); 48082815dcSEvan Bacon 49082815dcSEvan Bacon beforeEach(() => { 50082815dcSEvan Bacon delete process.env.WEBPACK_BUILD_OUTPUT_PATH; 51082815dcSEvan Bacon }); 52082815dcSEvan Bacon it('uses an env variable for the web build path', () => { 53082815dcSEvan Bacon process.env.WEBPACK_BUILD_OUTPUT_PATH = 'custom-env-path'; 54082815dcSEvan Bacon 55082815dcSEvan Bacon for (const project of ['/custom', '/standard']) { 56*97e1898cSEvan Bacon const { exp } = getConfig(project); 57082815dcSEvan Bacon const outputPath = getWebOutputPath(exp); 58082815dcSEvan Bacon expect(outputPath).toBe('custom-env-path'); 59082815dcSEvan Bacon } 60082815dcSEvan Bacon }); 61082815dcSEvan Bacon}); 62