@@ -24,8 +24,7 @@ import Pos.Crypto (EncryptedSecretKey, emptyPassphrase, firstHardened,
24
24
import Cardano.Wallet.API.Request (RequestParams (.. ))
25
25
import Cardano.Wallet.API.Request.Pagination (Page (.. ),
26
26
PaginationParams (.. ), PerPage (.. ))
27
- import Cardano.Wallet.API.Response (SliceOf (.. ),
28
- WalletResponse (wrData ))
27
+ import Cardano.Wallet.API.Response (SliceOf (.. ), WalletResponse (.. ))
29
28
import Cardano.Wallet.API.V1.Handlers.Addresses as Handlers
30
29
import qualified Cardano.Wallet.API.V1.Types as V1
31
30
import qualified Cardano.Wallet.Kernel.Addresses as Kernel
@@ -126,11 +125,14 @@ prepareAddressFixture n = do
126
125
let SliceOf {.. } = Addresses. getAddresses (RequestParams pp) db'
127
126
return . map AddressFixture $ paginatedSlice
128
127
128
+ newtype DesiredNewAccounts = DesiredNewAccs Int
129
+ newtype DesiredNewAddresses = DesiredNewAddrs Int
130
+
129
131
prepareAddressesFixture
130
- :: Int -- ^ Number of Accounts to create.
131
- -> Int -- ^ Number of ' Address per account to create.
132
+ :: DesiredNewAccounts -- ^ Number of Accounts to create.
133
+ -> DesiredNewAddresses -- ^ Number of Address per account to create.
132
134
-> Fixture. GenPassiveWalletFixture (M. Map V1. AccountIndex [V1. WalletAddress ], Int )
133
- prepareAddressesFixture acn adn = do
135
+ prepareAddressesFixture ( DesiredNewAccs acn) ( DesiredNewAddrs adn) = do
134
136
spendingPassword <- Fixture. genSpendingPassword
135
137
newWalletRq <- WalletLayer. CreateWallet <$> Wallets. genNewWalletRq spendingPassword
136
138
return $ \ pw -> do
@@ -178,8 +180,10 @@ withAddressFixtures n =
178
180
Fixture. withPassiveWalletFixture $ do
179
181
prepareAddressFixture n
180
182
181
- withAddressesFixtures :: Int -> Int ->
182
- ( Keystore. Keystore
183
+ withAddressesFixtures
184
+ :: DesiredNewAccounts
185
+ -> DesiredNewAddresses
186
+ -> ( Keystore. Keystore
183
187
-> PassiveWalletLayer IO
184
188
-> PassiveWallet
185
189
-> (M. Map V1. AccountIndex [V1. WalletAddress ], Int )
@@ -395,10 +399,9 @@ spec = describe "Addresses" $ do
395
399
396
400
describe " Address listing with multiple Accounts (Servant)" $ do
397
401
let rootId = addrRoot . V1. unV1 . V1. addrId
398
-
399
402
prop " page 0, per page 0" $ withMaxSuccess 20 $ do
400
403
monadicIO $
401
- withAddressesFixtures 4 4 $ \ _ layer _ _ -> do
404
+ withAddressesFixtures ( DesiredNewAccs 4 ) ( DesiredNewAddrs 4 ) $ \ _ layer _ _ -> do
402
405
let pp = PaginationParams (Page 0 ) (PerPage 0 )
403
406
res <- runExceptT $ runHandler' $ do
404
407
Handlers. listAddresses layer (RequestParams pp)
@@ -408,7 +411,7 @@ spec = describe "Addresses" $ do
408
411
409
412
prop " it yields the correct number of results" $ withMaxSuccess 20 $ do
410
413
monadicIO $
411
- withAddressesFixtures 3 4 $ \ _ layer _ (_, total) -> do
414
+ withAddressesFixtures ( DesiredNewAccs 3 ) ( DesiredNewAddrs 4 ) $ \ _ layer _ (_, total) -> do
412
415
let pp = PaginationParams (Page 1 ) (PerPage 40 )
413
416
res <- runExceptT $ runHandler' $ do
414
417
Handlers. listAddresses layer (RequestParams pp)
@@ -419,34 +422,18 @@ spec = describe "Addresses" $ do
419
422
420
423
prop " is deterministic" $ withMaxSuccess 20 $ do
421
424
monadicIO $
422
- withAddressesFixtures 3 8 $ \ _ layer _ (_, expectedTotal) -> do
425
+ withAddressesFixtures ( DesiredNewAccs 3 ) ( DesiredNewAddrs 8 ) $ \ _ layer _ (_, expectedTotal) -> do
423
426
let ppSplit = quot expectedTotal 3 + 1
424
- pp = PaginationParams (Page 1 ) (PerPage 40 )
425
- pp1 = PaginationParams (Page 1 ) (PerPage ppSplit)
426
- pp2 = PaginationParams (Page 2 ) (PerPage ppSplit)
427
- pp3 = PaginationParams (Page 3 ) (PerPage ppSplit)
428
427
mkRequest mypp = Handlers. listAddresses layer (RequestParams mypp)
429
- _ <- runExceptT $ runHandler' $ do
430
- r1 <- mkRequest pp
431
- r2 <- mkRequest pp
432
- return $ r1 `shouldBe` r2
433
- _ <- runExceptT $ runHandler' $ do
434
- r1 <- mkRequest pp1
435
- r2 <- mkRequest pp1
436
- return $ r1 `shouldBe` r2
437
- _ <- runExceptT $ runHandler' $ do
438
- r1 <- mkRequest pp2
439
- r2 <- mkRequest pp2
440
- return $ r1 `shouldBe` r2
441
- _ <- runExceptT $ runHandler' $ do
442
- r1 <- mkRequest pp3
443
- r2 <- mkRequest pp3
444
- return $ r1 `shouldBe` r2
445
- return ()
428
+ forM_ [(1 ,40 ), (1 , ppSplit), (2 , ppSplit), (3 , ppSplit)] $ \ (page, perPage) -> do
429
+ let pp = PaginationParams (Page page) (PerPage perPage)
430
+ Right (r1, r2) <- runExceptT $ runHandler' $ do
431
+ (,) <$> mkRequest pp <*> mkRequest pp
432
+ r1 `shouldBe` r2
446
433
447
434
prop " yields the correct set of resutls" $ withMaxSuccess 20 $ do
448
435
monadicIO $
449
- withAddressesFixtures 4 8 $ \ _ layer _ (_, expectedTotal) -> do
436
+ withAddressesFixtures ( DesiredNewAccs 4 ) ( DesiredNewAddrs 8 ) $ \ _ layer _ (_, expectedTotal) -> do
450
437
let ppSplit = quot expectedTotal 3 + 1
451
438
pp = PaginationParams (Page 1 ) (PerPage 50 )
452
439
pp1 = PaginationParams (Page 1 ) (PerPage ppSplit)
@@ -471,7 +458,7 @@ spec = describe "Addresses" $ do
471
458
472
459
prop " yields the correct ordered resutls when there is one account" $ withMaxSuccess 20 $ do
473
460
monadicIO $
474
- withAddressesFixtures 0 15 $ \ _ layer _ (_, expectedTotal) -> do
461
+ withAddressesFixtures ( DesiredNewAccs 0 ) ( DesiredNewAddrs 15 ) $ \ _ layer _ (_, expectedTotal) -> do
475
462
let ppSplit = quot expectedTotal 3 + 1
476
463
pp = PaginationParams (Page 1 ) (PerPage 50 )
477
464
pp1 = PaginationParams (Page 1 ) (PerPage ppSplit)
@@ -497,7 +484,9 @@ spec = describe "Addresses" $ do
497
484
498
485
prop " yields the correct ordered resutls" $ withMaxSuccess 20 $ do
499
486
monadicIO $ do
500
- forM_ [(4 ,8 ), (6 ,6 ), (5 ,7 )] $ \ (acc,adr) ->
487
+ forM_ [(DesiredNewAccs 4 ,DesiredNewAddrs 8 ),
488
+ (DesiredNewAccs 6 ,DesiredNewAddrs 6 ),
489
+ (DesiredNewAccs 5 ,DesiredNewAddrs 7 )] $ \ (acc,adr) ->
501
490
withAddressesFixtures acc adr $ \ _ layer _ (_, expectedTotal) -> do
502
491
forM_ [2 .. 10 ] $ \ k -> do
503
492
let indexes = [1 .. k]
0 commit comments