@@ -10,9 +10,11 @@ import { ControllerTransfer } from '../../procedures/ControllerTransfer';
1010import * as controllerTransferModule from '../../procedures/ControllerTransfer' ;
1111import { Procedure } from '~/procedures/Procedure' ;
1212import { PolymathError } from '~/PolymathError' ;
13- import { ErrorCode , Feature , ProcedureType } from '~/types' ;
13+ import { ErrorCode , ProcedureType } from '~/types' ;
1414import { mockFactories } from '~/testUtils/mockFactories' ;
1515import * as shareholderFactoryModule from '~/entities/factories/ShareholderFactory' ;
16+ import { Factories } from '../../Context' ;
17+ import { Shareholder } from '~/entities' ;
1618
1719const params = {
1820 symbol : 'TEST1' ,
@@ -31,6 +33,7 @@ describe('ControllerTransfer', () => {
3133 let tokenFactoryMock : MockManager < tokenFactoryModule . MockedTokenFactoryObject > ;
3234 let securityTokenMock : MockManager < contractWrappersModule . SecurityToken_3_0_0 > ;
3335 let shareholderFactoryMock : MockManager < shareholderFactoryModule . ShareholderFactory > ;
36+ let factoriesMockedSetup : Factories ;
3437
3538 beforeEach ( ( ) => {
3639 // Mock the context, wrappers, and tokenFactory to test CreateCheckpoint
@@ -53,10 +56,9 @@ describe('ControllerTransfer', () => {
5356 contextMock . set ( 'contractWrappers' , wrappersMock . getMockInstance ( ) ) ;
5457 wrappersMock . set ( 'tokenFactory' , tokenFactoryMock . getMockInstance ( ) ) ;
5558 shareholderFactoryMock = ImportMock . mockClass ( shareholderFactoryModule , 'ShareholderFactory' ) ;
56- shareholderFactoryMock . mock ( 'refresh' , Promise . resolve ( [ undefined , undefined ] ) ) ;
57- const factoryMockSetup = mockFactories ( ) ;
58- factoryMockSetup . shareholderFactory = shareholderFactoryMock . getMockInstance ( ) ;
59- contextMock . set ( 'factories' , factoryMockSetup ) ;
59+ factoriesMockedSetup = mockFactories ( ) ;
60+ factoriesMockedSetup . shareholderFactory = shareholderFactoryMock . getMockInstance ( ) ;
61+ contextMock . set ( 'factories' , factoriesMockedSetup ) ;
6062
6163 // Instantiate ControllerTransfer
6264 target = new ControllerTransfer ( params , contextMock . getMockInstance ( ) ) ;
@@ -158,16 +160,18 @@ describe('ControllerTransfer', () => {
158160 ) ;
159161 } ) ;
160162 } ) ;
161- test ( 'should successfully resolve controller transfer' , async ( ) => {
162- const controllerTransferSpy = spy ( controllerTransferModule , 'createControllerTransferResolver' ) ;
163163
164- await controllerTransferModule . createControllerTransferResolver (
165- mockFactories ( ) ,
164+ test ( 'should successfully resolve controller transfer' , async ( ) => {
165+ const refreshMock = shareholderFactoryMock . mock ( 'refresh' , Promise . resolve ( undefined ) ) ;
166+ const resolverValue = await controllerTransferModule . createControllerTransferResolver (
167+ factoriesMockedSetup ,
166168 params . symbol ,
167169 params . from ,
168170 params . to
169- ) ;
170-
171- expect ( controllerTransferSpy . callCount ) . toEqual ( 1 ) ;
171+ ) ( ) ;
172+ expect ( refreshMock . getCall ( 0 ) . calledWith ( Shareholder . generateId ) ) ;
173+ expect ( refreshMock . getCall ( 1 ) . calledWith ( Shareholder . generateId ) ) ;
174+ expect ( await resolverValue ( ) ) . toEqual ( [ undefined , undefined ] ) ;
175+ expect ( refreshMock . callCount ) . toEqual ( 2 ) ;
172176 } ) ;
173177} ) ;
0 commit comments