@@ -10,18 +10,30 @@ describe('StencilStart unit tests', () => {
1010 init : jest . fn ( ) ,
1111 } ) ;
1212 const getThemeApiClientStub = ( ) => ( {
13- checkCliVersion : jest . fn ( ) ,
13+ checkCliVersion : jest . fn ( ) . mockResolvedValue ( {
14+ baseUrl : 'example.com' ,
15+ sslUrl : 'https://example.com' ,
16+ } ) ,
17+ getStoreHash : jest . fn ( ) . mockResolvedValue ( 'storeHash_value' ) ,
18+ getStoreChannels : jest
19+ . fn ( )
20+ . mockResolvedValue ( [ { channel_id : 5 , url : 'https://www.example.com' } ] ) ,
1421 } ) ;
1522 const getFsUtilsStub = ( ) => ( {
16- existsSync : jest . fn ( ) ,
17- parseJsonFile : jest . fn ( ) ,
23+ existsSync : jest . fn ( ) . mockReturnValue ( true ) ,
24+ parseJsonFile : jest . fn ( ) . mockResolvedValue ( { } ) ,
1825 recursiveReadDir : jest . fn ( ) ,
1926 } ) ;
2027 const getCliCommonStub = ( ) => ( {
2128 checkNodeVersion : jest . fn ( ) ,
2229 } ) ;
23- const getThemeConfigManagerStub = ( ) => ( { } ) ;
24- const getStencilConfigManagerStub = ( ) => ( { } ) ;
30+ const getThemeConfigManagerStub = ( ) => ( {
31+ themePath : '/some/absolute/config/path' ,
32+ configPath : '/some/absolute/config/path' ,
33+ } ) ;
34+ const getStencilConfigManagerStub = ( config = { } ) => ( {
35+ read : jest . fn ( ) . mockResolvedValue ( config ) ,
36+ } ) ;
2537 const getBuildConfigManagerStub = ( ) => ( { } ) ;
2638 const getTemplateAssemblerStub = ( ) => ( { } ) ;
2739 const getCyclesDetectorConstructorStub = ( ) => jest . fn ( ) ;
@@ -32,6 +44,9 @@ describe('StencilStart unit tests', () => {
3244 log : jest . fn ( ) ,
3345 error : jest . fn ( ) ,
3446 } ) ;
47+ const getStoreSettingsApiClientStub = ( ) => ( {
48+ getStoreSettingsLocale : jest . fn ( ) . mockResolvedValue ( { default_shopper_language : 'en_US' } ) ,
49+ } ) ;
3550 const createStencilStartInstance = ( {
3651 browserSync,
3752 fsUtils,
@@ -44,6 +59,7 @@ describe('StencilStart unit tests', () => {
4459 CyclesDetector,
4560 stencilPushUtils,
4661 logger,
62+ storeSettingsApiClient,
4763 } = { } ) => {
4864 const passedArgs = {
4965 browserSync : browserSync || getBrowserSyncStub ( ) ,
@@ -57,6 +73,7 @@ describe('StencilStart unit tests', () => {
5773 CyclesDetector : CyclesDetector || getCyclesDetectorConstructorStub ( ) ,
5874 stencilPushUtils : stencilPushUtils || getStencilPushUtilsStub ( ) ,
5975 logger : logger || getLoggerStub ( ) ,
76+ storeSettingsApiClient : storeSettingsApiClient || getStoreSettingsApiClientStub ( ) ,
6077 } ;
6178 const instance = new StencilStart ( passedArgs ) ;
6279 return {
@@ -151,4 +168,42 @@ describe('StencilStart unit tests', () => {
151168 expect ( result ) . toEqual ( channelUrl ) ;
152169 } ) ;
153170 } ) ;
171+
172+ describe ( 'port option' , ( ) => {
173+ it ( 'should read port from the config file' , async ( ) => {
174+ const port = 1234 ;
175+ const browserSyncStub = getBrowserSyncStub ( ) ;
176+ const { instance } = createStencilStartInstance ( {
177+ browserSync : browserSyncStub ,
178+ stencilConfigManager : getStencilConfigManagerStub ( { port } ) ,
179+ } ) ;
180+ instance . startLocalServer = jest . fn ( ) ;
181+ instance . getStartUpInfo = jest . fn ( ) . mockReturnValue ( 'Start up info' ) ;
182+ instance . checkLangFiles = jest . fn ( ) ;
183+ await instance . run ( { } ) ;
184+ expect ( browserSyncStub . init ) . toHaveBeenCalledWith (
185+ expect . objectContaining ( {
186+ port,
187+ } ) ,
188+ ) ;
189+ } ) ;
190+
191+ it ( 'should read port from the cli' , async ( ) => {
192+ const port = 1234 ;
193+ const browserSyncStub = getBrowserSyncStub ( ) ;
194+ const { instance } = createStencilStartInstance ( {
195+ browserSync : browserSyncStub ,
196+ stencilConfigManager : getStencilConfigManagerStub ( { port : 5678 } ) ,
197+ } ) ;
198+ instance . startLocalServer = jest . fn ( ) ;
199+ instance . getStartUpInfo = jest . fn ( ) . mockReturnValue ( 'Start up info' ) ;
200+ instance . checkLangFiles = jest . fn ( ) ;
201+ await instance . run ( { port } ) ;
202+ expect ( browserSyncStub . init ) . toHaveBeenCalledWith (
203+ expect . objectContaining ( {
204+ port,
205+ } ) ,
206+ ) ;
207+ } ) ;
208+ } ) ;
154209} ) ;
0 commit comments