@@ -4,11 +4,18 @@ import { BigNumber, TransactionReceiptWithDecodedLogs } from '@polymathnetwork/c
4
4
import * as contractWrappersModule from '@polymathnetwork/contract-wrappers' ;
5
5
import { cloneDeep } from 'lodash' ;
6
6
import { MintTokens } from '../../procedures/MintTokens' ;
7
+ import * as mintTokensModule from '../../procedures/MintTokens' ;
7
8
import { Procedure } from '../../procedures/Procedure' ;
8
9
import * as shareholdersEntityModule from '../../entities/SecurityToken/Shareholders' ;
9
10
import * as securityTokenEntityModule from '../../entities/SecurityToken/SecurityToken' ;
10
11
import { PolymathError } from '../../PolymathError' ;
11
- import { ErrorCode , MintTokensProcedureArgs , PolyTransactionTag , ProcedureType } from '../../types' ;
12
+ import {
13
+ DividendType ,
14
+ ErrorCode ,
15
+ MintTokensProcedureArgs ,
16
+ PolyTransactionTag ,
17
+ ProcedureType ,
18
+ } from '../../types' ;
12
19
import * as securityTokenFactoryModule from '../../entities/factories/SecurityTokenFactory' ;
13
20
import * as shareholderFactoryModule from '../../entities/factories/ShareholderFactory' ;
14
21
import * as contextModule from '../../Context' ;
@@ -17,8 +24,9 @@ import * as tokenFactoryModule from '../../testUtils/MockedTokenFactoryModule';
17
24
import * as moduleWrapperFactoryModule from '../../testUtils/MockedModuleWrapperFactoryModule' ;
18
25
import { ModifyShareholderData } from '../../procedures' ;
19
26
import { mockFactories } from '../../testUtils/mockFactories' ;
20
- import { Shareholder } from '../../entities' ;
27
+ import { DividendDistribution , Shareholder } from '../../entities' ;
21
28
import { SecurityToken } from '../../entities/SecurityToken/SecurityToken' ;
29
+ import { Factories } from '../../Context' ;
22
30
23
31
const securityTokenId = 'ST ID' ;
24
32
const testAddress = '0x6666666666666666666666666666666666666666' ;
@@ -53,6 +61,7 @@ describe('MintTokens', () => {
53
61
let moduleWrapperFactoryMock : MockManager <
54
62
moduleWrapperFactoryModule . MockedModuleWrapperFactoryModule
55
63
> ;
64
+ let factoryMockSetup : Factories ;
56
65
57
66
// Mock factories
58
67
let securityTokenFactoryMock : MockManager < securityTokenFactoryModule . SecurityTokenFactory > ;
@@ -97,7 +106,7 @@ describe('MintTokens', () => {
97
106
securityTokenMock . getMockInstance ( )
98
107
) ;
99
108
100
- const factoryMockSetup = mockFactories ( ) ;
109
+ factoryMockSetup = mockFactories ( ) ;
101
110
102
111
wrappersMock . mock ( 'getAttachedModules' , Promise . resolve ( [ ] ) ) ;
103
112
@@ -167,6 +176,7 @@ describe('MintTokens', () => {
167
176
address : testAddress ,
168
177
} ;
169
178
const fetchStub = shareholderFactoryMock . mock ( 'fetch' , Promise . resolve ( shareholderObject ) ) ;
179
+ const refreshStub = securityTokenEntityStaticMock . mock ( 'refresh' , Promise . resolve ( ) ) ;
170
180
171
181
// Real call
172
182
const resolver = await target . prepareTransactions ( ) ;
@@ -191,6 +201,24 @@ describe('MintTokens', () => {
191
201
)
192
202
) . toEqual ( true ) ;
193
203
expect ( fetchStub . callCount ) . toBe ( 2 ) ;
204
+
205
+ // Verification for fetch
206
+ expect ( refreshStub . getCall ( 0 ) . calledWithExactly ( securityTokenId ) ) . toEqual ( true ) ;
207
+ expect ( refreshStub . getCall ( 1 ) . calledWithExactly ( securityTokenId ) ) . toEqual ( true ) ;
208
+ expect ( refreshStub . callCount ) . toBe ( 2 ) ;
209
+ } ) ;
210
+
211
+ test ( 'should refresh the security token factory with resolver' , async ( ) => {
212
+ const refreshStub = securityTokenFactoryMock . mock ( 'refresh' , Promise . resolve ( undefined ) ) ;
213
+
214
+ const resolverValue = await mintTokensModule . refreshSecurityTokenFactoryResolver (
215
+ factoryMockSetup ,
216
+ securityTokenId
217
+ ) ( ) ;
218
+
219
+ expect ( refreshStub . getCall ( 0 ) . calledWithExactly ( securityTokenId ) ) . toEqual ( true ) ;
220
+ expect ( resolverValue ) . toEqual ( undefined ) ;
221
+ expect ( refreshStub . callCount ) . toEqual ( 1 ) ;
194
222
} ) ;
195
223
196
224
test ( 'should throw if there is no valid security token supplied' , async ( ) => {
0 commit comments