@@ -34,7 +34,7 @@ describe('getNav', () => {
3434
3535 describe ( 'no bounds' , ( ) => {
3636 it ( 'should return rawNav' , async ( ) => {
37- const nav = 1.2301
37+ const nav = ' 1.2301'
3838 const scaledNav = '123'
3939 const decimals = 2
4040
@@ -84,7 +84,7 @@ describe('getNav', () => {
8484 } )
8585
8686 it ( 'should return rawNav - already scaled' , async ( ) => {
87- const nav = 123
87+ const nav = ' 123'
8888 const scaledNav = '123'
8989 const decimals = 2
9090
@@ -136,7 +136,7 @@ describe('getNav', () => {
136136
137137 describe ( 'lowerBound' , ( ) => {
138138 it ( 'should return lowerBound' , async ( ) => {
139- mockGetRawNav . mockResolvedValue ( 1.4 )
139+ mockGetRawNav . mockResolvedValue ( ' 1.4' )
140140 mockGetBounds . mockResolvedValue ( {
141141 lower : {
142142 isLowerBoundEnabled : true ,
@@ -181,7 +181,7 @@ describe('getNav', () => {
181181 } )
182182
183183 it ( 'should return lowerBound with out maxDiscount' , async ( ) => {
184- mockGetRawNav . mockResolvedValue ( 1.4 )
184+ mockGetRawNav . mockResolvedValue ( ' 1.4' )
185185 mockGetBounds . mockResolvedValue ( {
186186 lower : {
187187 isLowerBoundEnabled : true ,
@@ -228,7 +228,7 @@ describe('getNav', () => {
228228
229229 describe ( 'upperBound' , ( ) => {
230230 it ( 'should return upperBound' , async ( ) => {
231- mockGetRawNav . mockResolvedValue ( 1.006 )
231+ mockGetRawNav . mockResolvedValue ( ' 1.006' )
232232 mockGetBounds . mockResolvedValue ( {
233233 lower : {
234234 isLowerBoundEnabled : false ,
@@ -276,7 +276,7 @@ describe('getNav', () => {
276276
277277 describe ( 'with in bound' , ( ) => {
278278 it ( 'should return rawNav' , async ( ) => {
279- mockGetRawNav . mockResolvedValue ( 1.001 )
279+ mockGetRawNav . mockResolvedValue ( ' 1.001' )
280280 mockGetBounds . mockResolvedValue ( {
281281 lower : {
282282 isLowerBoundEnabled : true ,
@@ -320,5 +320,51 @@ describe('getNav', () => {
320320 isBounded : true ,
321321 } )
322322 } )
323+
324+ it ( 'should return rawNav - 18 decimals' , async ( ) => {
325+ mockGetRawNav . mockResolvedValue ( '1.001000000000000000000000000000001' )
326+ mockGetBounds . mockResolvedValue ( {
327+ lower : {
328+ isLowerBoundEnabled : true ,
329+ latestNav : 10n ** 18n ,
330+ latestTime : now / 1000 - 86400 / 2 ,
331+ maxDiscount : 25 ,
332+ lowerBoundTolerance : 50 ,
333+ } ,
334+ upper : {
335+ isUpperBoundEnabled : true ,
336+ lookbackNav : 10n ** 18n ,
337+ lookbackTime : now / 1000 - 86400 / 2 ,
338+ maxExpectedApy : 25 ,
339+ upperBoundTolerance : 50 ,
340+ } ,
341+ decimals : 18 ,
342+ } )
343+
344+ const result = await getNav (
345+ defaultParams . source ,
346+ defaultParams . sourceInput ,
347+ defaultParams . sourceScaled ,
348+ defaultParams . requester ,
349+ defaultParams . asset ,
350+ defaultParams . registry ,
351+ defaultParams . provider ,
352+ )
353+
354+ expect ( result ) . toEqual ( {
355+ rawNav : '1001000000000000000' ,
356+ adjustedNav : '1001000000000000000' ,
357+ lowerBound : '993755471683049500' ,
358+ upperBound : '1005003437491631700' ,
359+ bases : {
360+ lookback : { nav : '1000000000000000000' , ts : now / 1000 - 86400 / 2 } ,
361+ previous : { nav : '1000000000000000000' , ts : now / 1000 - 86400 / 2 } ,
362+ } ,
363+ decimals : 18 ,
364+ riskFlag : false ,
365+ breachDirection : '' ,
366+ isBounded : true ,
367+ } )
368+ } )
323369 } )
324370} )
0 commit comments