@@ -2,9 +2,8 @@ import { PreviewSdkService } from "../../lib/services/livesync/playground/previe
22import { Yok } from "../../lib/common/yok" ;
33import { assert } from "chai" ;
44import { LoggerStub } from "../stubs" ;
5- import { PubnubKeys } from "../../lib/services/livesync/playground/preview-app-constants" ;
65
7- const getPreviewSdkService = ( ) : IPreviewSdkService => {
6+ const createTestInjector = ( ) : IInjector => {
87 const testInjector = new Yok ( ) ;
98 testInjector . register ( "logger" , LoggerStub ) ;
109 testInjector . register ( "config" , { } ) ;
@@ -14,114 +13,65 @@ const getPreviewSdkService = (): IPreviewSdkService => {
1413 testInjector . register ( "httpClient" , {
1514 httpRequest : async ( options : any , proxySettings ?: IProxySettings ) : Promise < Server . IResponse > => undefined
1615 } ) ;
16+ testInjector . register ( "projectDataService" , {
17+ getProjectData : ( ) => ( { } )
18+ } ) ;
1719
18- return testInjector . resolve ( "previewSdkService" ) ;
20+ return testInjector ;
1921} ;
2022
2123describe ( 'PreviewSdkService' , ( ) => {
24+ let injector : IInjector , previewSdkService : IPreviewSdkService ;
25+
26+ beforeEach ( ( ) => {
27+ injector = createTestInjector ( ) ;
28+ previewSdkService = injector . resolve ( "previewSdkService" ) ;
29+ } ) ;
30+
2231 describe ( 'getQrCodeUrl' , ( ) => {
2332 describe ( "hmr" , ( ) => {
2433 it ( 'sets hmr to 1 when useHotModuleReload is true' , async ( ) => {
25- const sdk = getPreviewSdkService ( ) ;
26-
27- const previewUrl = sdk . getQrCodeUrl ( { useHotModuleReload : true } ) ;
34+ const previewUrl = previewSdkService . getQrCodeUrl ( { projectDir : "" , useHotModuleReload : true } ) ;
2835
2936 assert . isTrue ( previewUrl . indexOf ( "hmr=1" ) > - 1 ) ;
3037 } ) ;
3138 it ( 'sets hmr to 0 when useHotModuleReload is false' , async ( ) => {
32- const sdk = getPreviewSdkService ( ) ;
33-
34- const previewUrl = sdk . getQrCodeUrl ( { useHotModuleReload : false } ) ;
39+ const previewUrl = previewSdkService . getQrCodeUrl ( { projectDir : "" , useHotModuleReload : false } ) ;
3540
3641 assert . isTrue ( previewUrl . indexOf ( "hmr=0" ) > - 1 ) ;
3742 } ) ;
3843 } ) ;
3944
4045 describe ( "schema" , ( ) => {
41- const testCases : [ { name : string , schemaFromApi : string , schemaFromNsConfig : string , expectedSchemaName : string } ] = [
46+ const testCases = [
4247 {
4348 name : "should return the schema from api" ,
44- schemaFromApi : "ksplay" ,
45- schemaFromNsConfig : null ,
46- expectedSchemaName : "ksplay"
49+ schemaFromNsConfig : "nsplay" ,
50+ expectedSchemaName : "nsplay"
4751 } ,
4852 {
4953 name : "should return the schema from nsconfig" ,
50- schemaFromApi : null ,
5154 schemaFromNsConfig : "ksplay" ,
5255 expectedSchemaName : "ksplay"
5356 } ,
5457 {
5558 name : "should return the default schema" ,
56- schemaFromApi : null ,
5759 schemaFromNsConfig : null ,
5860 expectedSchemaName : "nsplay"
5961 }
6062 ] ;
6163
6264 _ . each ( testCases , testCase => {
6365 it ( `${ testCase . name } ` , ( ) => {
64- const qrCodeData = { schemaName : testCase . schemaFromApi } ;
65- const qrCodeOptions = { nsConfigPreviewAppSchema : testCase . schemaFromNsConfig , qrCodeData , useHotModuleReload : true } ;
66- const previewSdkService = getPreviewSdkService ( ) ;
66+ const qrCodeOptions = { projectDir : "myTestDir" , useHotModuleReload : true } ;
67+ const projectDataService = injector . resolve ( "projectDataService" ) ;
68+ projectDataService . getProjectData = ( ) => ( { previewAppSchema : testCase . schemaFromNsConfig } ) ;
6769
6870 const qrCodeUrl = previewSdkService . getQrCodeUrl ( qrCodeOptions ) ;
6971
7072 assert . deepEqual ( qrCodeUrl . split ( ":" ) [ 0 ] , testCase . expectedSchemaName ) ;
7173 } ) ;
7274 } ) ;
7375 } ) ;
74-
75- describe ( "publishKey" , ( ) => {
76- const testCases = [
77- {
78- name : "should return the provided key from api" ,
79- publishKeyFromApi : "myTestPublishKey" ,
80- expectedPublishKey : "myTestPublishKey"
81- } ,
82- {
83- name : "should return the default key" ,
84- publishKeyFromApi : null ,
85- expectedPublishKey : PubnubKeys . PUBLISH_KEY
86- }
87- ] ;
88-
89- _ . each ( testCases , testCase => {
90- it ( `${ testCase . name } ` , ( ) => {
91- const qrCodeOptions = { projectData : < any > { } , qrCodeData : < any > { publishKey : testCase . publishKeyFromApi } , useHotModuleReload : true } ;
92- const previewSdkService = getPreviewSdkService ( ) ;
93-
94- const qrCodeUrl = previewSdkService . getQrCodeUrl ( qrCodeOptions ) ;
95-
96- assert . isTrue ( qrCodeUrl . indexOf ( `&pKey=${ testCase . expectedPublishKey } ` ) > - 1 ) ;
97- } ) ;
98- } ) ;
99- } ) ;
100-
101- describe ( "subscribeKey" , ( ) => {
102- const testCases = [
103- {
104- name : "should return the provided key from api" ,
105- subscribeKeyFromApi : "myTestSubscribeKey" ,
106- expectedSubscribeKey : "myTestSubscribeKey"
107- } ,
108- {
109- name : "should return the default key" ,
110- subscribeKeyFromApi : null ,
111- expectedSubscribeKey : PubnubKeys . SUBSCRIBE_KEY
112- }
113- ] ;
114-
115- _ . each ( testCases , testCase => {
116- it ( `${ testCase . name } ` , ( ) => {
117- const qrCodeOptions = { projectData : < any > { } , qrCodeData : < any > { subscribeKey : testCase . subscribeKeyFromApi } , useHotModuleReload : true } ;
118- const previewSdkService = getPreviewSdkService ( ) ;
119-
120- const qrCodeUrl = previewSdkService . getQrCodeUrl ( qrCodeOptions ) ;
121-
122- assert . isTrue ( qrCodeUrl . indexOf ( `&sKey=${ testCase . expectedSubscribeKey } ` ) > - 1 ) ;
123- } ) ;
124- } ) ;
125- } ) ;
12676 } ) ;
12777} ) ;
0 commit comments