@@ -29,7 +29,7 @@ import LightningDevApp, {
2929 androidSalesforceAppPreviewConfig ,
3030 iOSSalesforceAppPreviewConfig ,
3131} from '../../../../src/commands/lightning/dev/app.js' ;
32- import { OrgUtils } from '../../../../src/shared/orgUtils.js' ;
32+ import { AppDefinition , OrgUtils } from '../../../../src/shared/orgUtils.js' ;
3333import { PreviewUtils } from '../../../../src/shared/previewUtils.js' ;
3434import { ConfigUtils , LocalWebServerIdentityData } from '../../../../src/shared/configUtils.js' ;
3535import { PromptUtils } from '../../../../src/shared/promptUtils.js' ;
@@ -41,7 +41,12 @@ describe('lightning dev app', () => {
4141 const sharedMessages = Messages . loadMessages ( '@salesforce/plugin-lightning-dev' , 'shared.utils' ) ;
4242 const $$ = new TestContext ( ) ;
4343 const testOrgData = new MockTestOrgData ( ) ;
44- const testAppId = '06m8b000002vpFSAAY' ;
44+ const testAppDefinition : AppDefinition = {
45+ DeveloperName : 'TestApp' ,
46+ DurableId : '06m8b000002vpFSAAY' ,
47+ Label : 'Test App' ,
48+ Description : 'An app to be used for unit testing' ,
49+ } ;
4550 const testServerUrl = 'wss://localhost:1234' ;
4651 const testIOSDevice = new AppleDevice (
4752 'F2B4097F-F33E-4D8A-8FFF-CE49F8D6C166' ,
@@ -112,7 +117,7 @@ describe('lightning dev app', () => {
112117
113118 it ( 'throws when app not found' , async ( ) => {
114119 try {
115- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( undefined ) ;
120+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( undefined ) ;
116121 await MockedLightningPreviewApp . run ( [ '--name' , 'blah' , '-o' , testOrgData . username , '-t' , Platform . desktop ] ) ;
117122 } catch ( err ) {
118123 expect ( err )
@@ -124,7 +129,7 @@ describe('lightning dev app', () => {
124129 it ( 'throws when username not found' , async ( ) => {
125130 try {
126131 $$ . SANDBOX . restore ( ) ;
127- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( undefined ) ;
132+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( undefined ) ;
128133 $$ . SANDBOX . stub ( Connection . prototype , 'getUsername' ) . returns ( undefined ) ;
129134 await MockedLightningPreviewApp . run ( [ '--name' , 'blah' , '-o' , testOrgData . username , '-t' , Platform . desktop ] ) ;
130135 } catch ( err ) {
@@ -134,7 +139,7 @@ describe('lightning dev app', () => {
134139
135140 it ( 'throws when cannot determine ldp server url' , async ( ) => {
136141 try {
137- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
142+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
138143 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . throws (
139144 new Error ( 'Cannot determine LDP url.' )
140145 ) ;
@@ -147,20 +152,25 @@ describe('lightning dev app', () => {
147152 describe ( 'desktop dev' , ( ) => {
148153 it ( 'prompts user to select platform when not provided' , async ( ) => {
149154 const promptStub = $$ . SANDBOX . stub ( PromptUtils , 'promptUserToSelectPlatform' ) . resolves ( Platform . desktop ) ;
150- await verifyOrgOpen ( 'lightning' ) ;
155+ $$ . SANDBOX . stub ( PromptUtils , 'promptUserToSelectLightningExperienceApp' ) . resolves ( testAppDefinition ) ;
156+ await verifyOrgOpen ( `lightning/app/${ testAppDefinition . DurableId } ` ) ;
151157 expect ( promptStub . calledOnce ) ;
152158 } ) ;
153159
154160 it ( 'runs org:open with proper flags when app name provided' , async ( ) => {
155- await verifyOrgOpen ( `lightning/app/${ testAppId } ` , Platform . desktop , 'Sales' ) ;
161+ await verifyOrgOpen ( `lightning/app/${ testAppDefinition . DurableId } ` , Platform . desktop , 'Sales' ) ;
156162 } ) ;
157163
158- it ( 'runs org:open with proper flags when no app name provided' , async ( ) => {
159- await verifyOrgOpen ( 'lightning' , Platform . desktop ) ;
164+ it ( 'prompts user to select lightning app when not provided' , async ( ) => {
165+ const promptStub = $$ . SANDBOX . stub ( PromptUtils , 'promptUserToSelectLightningExperienceApp' ) . resolves (
166+ testAppDefinition
167+ ) ;
168+ await verifyOrgOpen ( `lightning/app/${ testAppDefinition . DurableId } ` , Platform . desktop ) ;
169+ expect ( promptStub . calledOnce ) ;
160170 } ) ;
161171
162172 async function verifyOrgOpen ( expectedAppPath : string , deviceType ?: Platform , appName ?: string ) : Promise < void > {
163- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
173+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
164174 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
165175 $$ . SANDBOX . stub ( ConfigUtils , 'getIdentityData' ) . resolves ( testIdentityData ) ;
166176
@@ -192,7 +202,7 @@ describe('lightning dev app', () => {
192202
193203 describe ( 'mobile dev' , ( ) => {
194204 it ( 'throws when environment setup requirements are not met' , async ( ) => {
195- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
205+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
196206 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
197207
198208 $$ . SANDBOX . stub ( LwcDevMobileCoreSetup . prototype , 'init' ) . resolves ( ) ;
@@ -203,7 +213,7 @@ describe('lightning dev app', () => {
203213 } ) ;
204214
205215 it ( 'throws when unable to fetch mobile device' , async ( ) => {
206- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
216+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
207217 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
208218
209219 $$ . SANDBOX . stub ( LwcDevMobileCoreSetup . prototype , 'init' ) . resolves ( ) ;
@@ -216,7 +226,7 @@ describe('lightning dev app', () => {
216226 } ) ;
217227
218228 it ( 'throws when device fails to boot' , async ( ) => {
219- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
229+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
220230 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
221231
222232 $$ . SANDBOX . stub ( LwcDevMobileCoreSetup . prototype , 'init' ) . resolves ( ) ;
@@ -231,7 +241,7 @@ describe('lightning dev app', () => {
231241 } ) ;
232242
233243 it ( 'throws when cannot generate certificate' , async ( ) => {
234- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
244+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
235245 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
236246
237247 $$ . SANDBOX . stub ( LwcDevMobileCoreSetup . prototype , 'init' ) . resolves ( ) ;
@@ -251,7 +261,7 @@ describe('lightning dev app', () => {
251261 } ) ;
252262
253263 it ( 'throws if user chooses not to install app on mobile device' , async ( ) => {
254- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
264+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
255265 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
256266
257267 $$ . SANDBOX . stub ( LwcDevMobileCoreSetup . prototype , 'init' ) . resolves ( ) ;
@@ -269,7 +279,7 @@ describe('lightning dev app', () => {
269279 } ) ;
270280
271281 it ( 'prompts user to select mobile device when not provided' , async ( ) => {
272- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
282+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
273283 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
274284 $$ . SANDBOX . stub ( ConfigUtils , 'getIdentityData' ) . resolves ( testIdentityData ) ;
275285
@@ -285,7 +295,7 @@ describe('lightning dev app', () => {
285295 } ) ;
286296
287297 it ( 'installs and launches app on mobile device' , async ( ) => {
288- $$ . SANDBOX . stub ( OrgUtils , 'getAppId ' ) . resolves ( testAppId ) ;
298+ $$ . SANDBOX . stub ( OrgUtils , 'getAppDefinitionDurableId ' ) . resolves ( testAppDefinition . DurableId ) ;
289299 $$ . SANDBOX . stub ( PreviewUtils , 'generateWebSocketUrlForLocalDevServer' ) . returns ( testServerUrl ) ;
290300 $$ . SANDBOX . stub ( ConfigUtils , 'getIdentityData' ) . resolves ( testIdentityData ) ;
291301
@@ -394,7 +404,7 @@ describe('lightning dev app', () => {
394404 expectedLdpServerUrl ,
395405 testLdpServerId ,
396406 'Sales' ,
397- testAppId
407+ testAppDefinition . DurableId
398408 ) ;
399409
400410 const downloadStub = $$ . SANDBOX . stub ( PreviewUtils , 'downloadSalesforceMobileAppBundle' ) . resolves (
0 commit comments