@@ -6,14 +6,15 @@ import { CheckpointsController } from '~/checkpoints/checkpoints.controller';
6
6
import { CheckpointsService } from '~/checkpoints/checkpoints.service' ;
7
7
import { CheckpointDetailsModel } from '~/checkpoints/models/checkpoint-details.model' ;
8
8
import { CheckpointScheduleModel } from '~/checkpoints/models/checkpoint-schedule.model' ;
9
+ import { PeriodComplexityModel } from '~/checkpoints/models/period-complexity.model' ;
9
10
import { ScheduleComplexityModel } from '~/checkpoints/models/schedule-complexity.model' ;
10
11
import { PaginatedResultsModel } from '~/common/models/paginated-results.model' ;
11
12
import { ResultsModel } from '~/common/models/results.model' ;
12
13
import { testValues } from '~/test-utils/consts' ;
13
14
import { MockCheckpoint , MockCheckpointSchedule } from '~/test-utils/mocks' ;
14
15
import { MockCheckpointsService } from '~/test-utils/service-mocks' ;
15
16
16
- const { did, signer, txResult } = testValues ;
17
+ const { did, signer, txResult, ticker } = testValues ;
17
18
18
19
describe ( 'CheckpointsController' , ( ) => {
19
20
let controller : CheckpointsController ;
@@ -41,7 +42,6 @@ describe('CheckpointsController', () => {
41
42
const createdAt = new Date ( ) ;
42
43
const totalSupply = new BigNumber ( 1000 ) ;
43
44
const id = new BigNumber ( 1 ) ;
44
- const ticker = 'TICKER' ;
45
45
46
46
const mockCheckpoint = new MockCheckpoint ( ) ;
47
47
mockCheckpoint . createdAt . mockResolvedValue ( createdAt ) ;
@@ -83,10 +83,7 @@ describe('CheckpointsController', () => {
83
83
it ( 'should return the list of Checkpoints created on an Asset' , async ( ) => {
84
84
mockCheckpointsService . findAllByTicker . mockResolvedValue ( mockCheckpoints ) ;
85
85
86
- const result = await controller . getCheckpoints (
87
- { ticker : 'TICKER' } ,
88
- { size : new BigNumber ( 1 ) }
89
- ) ;
86
+ const result = await controller . getCheckpoints ( { ticker } , { size : new BigNumber ( 1 ) } ) ;
90
87
91
88
expect ( result ) . toEqual ( mockResult ) ;
92
89
} ) ;
@@ -95,7 +92,7 @@ describe('CheckpointsController', () => {
95
92
mockCheckpointsService . findAllByTicker . mockResolvedValue ( mockCheckpoints ) ;
96
93
97
94
const result = await controller . getCheckpoints (
98
- { ticker : 'TICKER' } ,
95
+ { ticker } ,
99
96
{ size : new BigNumber ( 1 ) , start : 'START_KEY' }
100
97
) ;
101
98
@@ -115,7 +112,7 @@ describe('CheckpointsController', () => {
115
112
signer : 'signer' ,
116
113
} ;
117
114
118
- const result = await controller . createCheckpoint ( { ticker : 'TICKER' } , body ) ;
115
+ const result = await controller . createCheckpoint ( { ticker } , body ) ;
119
116
120
117
expect ( result ) . toEqual ( {
121
118
...txResult ,
@@ -144,12 +141,12 @@ describe('CheckpointsController', () => {
144
141
145
142
mockCheckpointsService . findSchedulesByTicker . mockResolvedValue ( mockSchedules ) ;
146
143
147
- const result = await controller . getSchedules ( { ticker : 'TICKER' } ) ;
144
+ const result = await controller . getSchedules ( { ticker } ) ;
148
145
149
146
const mockResult = [
150
147
new CheckpointScheduleModel ( {
151
148
id : new BigNumber ( 1 ) ,
152
- ticker : 'TICKER' ,
149
+ ticker,
153
150
pendingPoints : [ mockDate ] ,
154
151
expiryDate : null ,
155
152
remainingCheckpoints : new BigNumber ( 1 ) ,
@@ -164,16 +161,18 @@ describe('CheckpointsController', () => {
164
161
describe ( 'getSchedule' , ( ) => {
165
162
it ( 'should call the service and return the Checkpoint Schedule details' , async ( ) => {
166
163
const mockDate = new Date ( '10/14/1987' ) ;
164
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
165
+ const { getCheckpoints, ...schedule } = new MockCheckpointSchedule ( ) ;
167
166
const mockScheduleWithDetails = {
168
- schedule : new MockCheckpointSchedule ( ) ,
167
+ schedule,
169
168
details : {
170
169
remainingCheckpoints : new BigNumber ( 1 ) ,
171
170
nextCheckpointDate : mockDate ,
172
171
} ,
173
172
} ;
174
173
mockCheckpointsService . findScheduleById . mockResolvedValue ( mockScheduleWithDetails ) ;
175
174
176
- const result = await controller . getSchedule ( { ticker : 'TICKER' , id : new BigNumber ( 1 ) } ) ;
175
+ const result = await controller . getSchedule ( { ticker, id : new BigNumber ( 1 ) } ) ;
177
176
178
177
const mockResult = new CheckpointScheduleModel ( {
179
178
id : mockScheduleWithDetails . schedule . id ,
@@ -197,8 +196,10 @@ describe('CheckpointsController', () => {
197
196
} ;
198
197
mockCheckpointsService . createScheduleByTicker . mockResolvedValue ( response ) ;
199
198
199
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
200
+ const { getCheckpoints, ...schedule } = new MockCheckpointSchedule ( ) ;
200
201
const mockScheduleWithDetails = {
201
- schedule : new MockCheckpointSchedule ( ) ,
202
+ schedule,
202
203
details : {
203
204
remainingCheckpoints : new BigNumber ( 1 ) ,
204
205
nextCheckpointDate : mockDate ,
@@ -211,7 +212,7 @@ describe('CheckpointsController', () => {
211
212
points : [ mockDate ] ,
212
213
} ;
213
214
214
- const result = await controller . createSchedule ( { ticker : 'TICKER' } , body ) ;
215
+ const result = await controller . createSchedule ( { ticker } , body ) ;
215
216
216
217
const mockCreatedSchedule = new CheckpointScheduleModel ( {
217
218
id : mockScheduleWithDetails . schedule . id ,
@@ -262,7 +263,7 @@ describe('CheckpointsController', () => {
262
263
263
264
const result = await controller . getHolders (
264
265
{
265
- ticker : 'TICKER' ,
266
+ ticker,
266
267
id : new BigNumber ( 1 ) ,
267
268
} ,
268
269
{ size : new BigNumber ( 10 ) }
@@ -275,7 +276,6 @@ describe('CheckpointsController', () => {
275
276
describe ( 'getAssetBalance' , ( ) => {
276
277
it ( 'should return the balance of an Asset for an Identity at a given Checkpoint' , async ( ) => {
277
278
const balance = new BigNumber ( 10 ) ;
278
- const ticker = 'TICKER' ;
279
279
const id = new BigNumber ( 1 ) ;
280
280
281
281
const balanceModel = new IdentityBalanceModel ( { balance, identity : did } ) ;
@@ -297,10 +297,7 @@ describe('CheckpointsController', () => {
297
297
it ( 'should return the transaction details' , async ( ) => {
298
298
mockCheckpointsService . deleteScheduleByTicker . mockResolvedValue ( txResult ) ;
299
299
300
- const result = await controller . deleteSchedule (
301
- { id : new BigNumber ( 1 ) , ticker : 'TICKER' } ,
302
- { signer }
303
- ) ;
300
+ const result = await controller . deleteSchedule ( { id : new BigNumber ( 1 ) , ticker } , { signer } ) ;
304
301
305
302
expect ( result ) . toEqual ( txResult ) ;
306
303
} ) ;
@@ -311,7 +308,6 @@ describe('CheckpointsController', () => {
311
308
const createdAt = new Date ( ) ;
312
309
const totalSupply = new BigNumber ( 1000 ) ;
313
310
const id = new BigNumber ( 1 ) ;
314
- const ticker = 'TICKER' ;
315
311
316
312
const mockCheckpoint = new MockCheckpoint ( ) ;
317
313
mockCheckpointsService . findCheckpointsByScheduleId . mockResolvedValue ( [
@@ -354,4 +350,28 @@ describe('CheckpointsController', () => {
354
350
] ) ;
355
351
} ) ;
356
352
} ) ;
353
+
354
+ describe ( 'getPeriodComplexity' , ( ) => {
355
+ it ( 'should call the service and return the Checkpoint Schedule complexity for given period' , async ( ) => {
356
+ const complexity = new BigNumber ( 10000 ) ;
357
+ mockCheckpointsService . getComplexityForPeriod . mockResolvedValue ( complexity ) ;
358
+ const start = new Date ( ) ;
359
+ const end = new Date ( ) ;
360
+ const result = await controller . getPeriodComplexity (
361
+ { ticker, id : new BigNumber ( 1 ) } ,
362
+ { start, end }
363
+ ) ;
364
+
365
+ const mockResult = new PeriodComplexityModel ( {
366
+ complexity,
367
+ } ) ;
368
+ expect ( result ) . toEqual ( mockResult ) ;
369
+ expect ( mockCheckpointsService . getComplexityForPeriod ) . toBeCalledWith (
370
+ ticker ,
371
+ new BigNumber ( 1 ) ,
372
+ start ,
373
+ end
374
+ ) ;
375
+ } ) ;
376
+ } ) ;
357
377
} ) ;
0 commit comments