@@ -10,13 +10,22 @@ import { Workspace } from '@lwc/lwc-dev-server';
1010import { Config , ConfigAggregator , Connection } from '@salesforce/core' ;
1111import { TestContext } from '@salesforce/core/testSetup' ;
1212import { CryptoUtils } from '@salesforce/lwc-dev-mobile-core' ;
13- import { ConfigUtils , LocalWebServerIdentityData } from '../../src/shared/configUtils.js' ;
13+ import { ConfigUtils , LocalWebServerIdentityData , IdentityTokenService } from '../../src/shared/configUtils.js' ;
1414import { ConfigVars } from '../../src/configMeta.js' ;
1515
1616describe ( 'configUtils' , ( ) => {
1717 const $$ = new TestContext ( ) ;
1818 const fakeIdentityToken = 'PFT1vw8v65aXd2b9HFvZ3Zu4OcKZwjI60bq7BEjj5k4=' ;
1919 const username = 'SalesforceDeveloper' ;
20+ const fakeEntityId = 'entityId' ;
21+
22+ class TestIdentityTokenService implements IdentityTokenService {
23+ // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars
24+ public saveTokenToServer ( token : string ) : Promise < string > {
25+ return Promise . resolve ( fakeEntityId ) ;
26+ }
27+ }
28+ const testTokenService = new TestIdentityTokenService ( ) ;
2029
2130 afterEach ( ( ) => {
2231 $$ . restore ( ) ;
@@ -27,27 +36,22 @@ describe('configUtils', () => {
2736 identityToken : fakeIdentityToken ,
2837 usernameToServerEntityIdMap : { } ,
2938 } ;
30- identityData . usernameToServerEntityIdMap [ username ] = 'entityId' ;
31- const stubConnection = $$ . SANDBOX . createStubInstance ( Connection ) ;
39+ identityData . usernameToServerEntityIdMap [ username ] = fakeEntityId ;
3240 $$ . SANDBOX . stub ( ConfigUtils , 'getIdentityData' ) . resolves ( identityData ) ;
3341 $$ . SANDBOX . stub ( Connection , 'create' ) . resolves ( Connection . prototype ) ;
42+ $$ . SANDBOX . stub ( ConfigUtils , 'writeIdentityData' ) . resolves ( ) ;
3443
35- const resolved = await ConfigUtils . getOrCreateIdentityToken ( username , stubConnection ) ;
44+ const resolved = await ConfigUtils . getOrCreateIdentityToken ( username , testTokenService ) ;
3645
3746 expect ( resolved ) . to . equal ( fakeIdentityToken ) ;
3847 } ) ;
3948
4049 it ( 'getOrCreateIdentityToken resolves and writeIdentityData is called when there is no identity data' , async ( ) => {
41- const stubConnection = $$ . SANDBOX . createStubInstance ( Connection ) ;
4250 $$ . SANDBOX . stub ( ConfigUtils , 'getIdentityData' ) . resolves ( undefined ) ;
4351 $$ . SANDBOX . stub ( CryptoUtils , 'generateIdentityToken' ) . resolves ( fakeIdentityToken ) ;
44- // eslint-disable-next-line @typescript-eslint/no-explicit-any
45- $$ . SANDBOX . stub ( ConfigUtils as any , 'saveIdentityTokenToServer' )
46- . withArgs ( fakeIdentityToken , stubConnection )
47- . resolves ( 'entityId' ) ;
4852 const writeIdentityTokenStub = $$ . SANDBOX . stub ( ConfigUtils , 'writeIdentityData' ) . resolves ( ) ;
4953
50- const resolved = await ConfigUtils . getOrCreateIdentityToken ( username , stubConnection ) ;
54+ const resolved = await ConfigUtils . getOrCreateIdentityToken ( username , testTokenService ) ;
5155
5256 expect ( resolved ) . to . equal ( fakeIdentityToken ) ;
5357 expect ( writeIdentityTokenStub . calledOnce ) . to . be . true ;
@@ -63,12 +67,17 @@ describe('configUtils', () => {
6367 } ) ;
6468
6569 it ( 'getIdentityData resolves when identity data is available' , async ( ) => {
70+ const identityData : LocalWebServerIdentityData = {
71+ identityToken : fakeIdentityToken ,
72+ usernameToServerEntityIdMap : { } ,
73+ } ;
74+ const stringifiedData = JSON . stringify ( identityData ) ;
6675 $$ . SANDBOX . stub ( ConfigAggregator , 'create' ) . resolves ( ConfigAggregator . prototype ) ;
6776 $$ . SANDBOX . stub ( ConfigAggregator . prototype , 'reload' ) . resolves ( ) ;
68- $$ . SANDBOX . stub ( ConfigAggregator . prototype , 'getPropertyValue' ) . returns ( fakeIdentityToken ) ;
77+ $$ . SANDBOX . stub ( ConfigAggregator . prototype , 'getPropertyValue' ) . returns ( stringifiedData ) ;
6978
7079 const resolved = await ConfigUtils . getIdentityData ( ) ;
71- expect ( resolved ) . to . equal ( fakeIdentityToken ) ;
80+ expect ( resolved ) . to . deep . equal ( identityData ) ;
7281 } ) ;
7382
7483 it ( 'writeIdentityData resolves' , async ( ) => {
0 commit comments