Skip to content
This repository was archived by the owner on Mar 1, 2019. It is now read-only.

Commit 7de9747

Browse files
committed
[CBR-436] Address Alfredo's review
1 parent 4f360f1 commit 7de9747

File tree

1 file changed

+24
-35
lines changed

1 file changed

+24
-35
lines changed

test/unit/Test/Spec/Addresses.hs

+24-35
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ import Pos.Crypto (EncryptedSecretKey, emptyPassphrase, firstHardened,
2424
import Cardano.Wallet.API.Request (RequestParams (..))
2525
import Cardano.Wallet.API.Request.Pagination (Page (..),
2626
PaginationParams (..), PerPage (..))
27-
import Cardano.Wallet.API.Response (SliceOf (..),
28-
WalletResponse (wrData))
27+
import Cardano.Wallet.API.Response (SliceOf (..), WalletResponse (..))
2928
import Cardano.Wallet.API.V1.Handlers.Addresses as Handlers
3029
import qualified Cardano.Wallet.API.V1.Types as V1
3130
import qualified Cardano.Wallet.Kernel.Addresses as Kernel
@@ -126,11 +125,14 @@ prepareAddressFixture n = do
126125
let SliceOf{..} = Addresses.getAddresses (RequestParams pp) db'
127126
return . map AddressFixture $ paginatedSlice
128127

128+
newtype DesiredNewAccounts = DesiredNewAccs Int
129+
newtype DesiredNewAddresses = DesiredNewAddrs Int
130+
129131
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.
132134
-> Fixture.GenPassiveWalletFixture (M.Map V1.AccountIndex [V1.WalletAddress], Int)
133-
prepareAddressesFixture acn adn = do
135+
prepareAddressesFixture (DesiredNewAccs acn) (DesiredNewAddrs adn) = do
134136
spendingPassword <- Fixture.genSpendingPassword
135137
newWalletRq <- WalletLayer.CreateWallet <$> Wallets.genNewWalletRq spendingPassword
136138
return $ \pw -> do
@@ -178,8 +180,10 @@ withAddressFixtures n =
178180
Fixture.withPassiveWalletFixture $ do
179181
prepareAddressFixture n
180182

181-
withAddressesFixtures :: Int -> Int ->
182-
( Keystore.Keystore
183+
withAddressesFixtures
184+
:: DesiredNewAccounts
185+
-> DesiredNewAddresses
186+
-> ( Keystore.Keystore
183187
-> PassiveWalletLayer IO
184188
-> PassiveWallet
185189
-> (M.Map V1.AccountIndex [V1.WalletAddress], Int)
@@ -395,10 +399,9 @@ spec = describe "Addresses" $ do
395399

396400
describe "Address listing with multiple Accounts (Servant)" $ do
397401
let rootId = addrRoot . V1.unV1 . V1.addrId
398-
399402
prop "page 0, per page 0" $ withMaxSuccess 20 $ do
400403
monadicIO $
401-
withAddressesFixtures 4 4 $ \_ layer _ _ -> do
404+
withAddressesFixtures (DesiredNewAccs 4) (DesiredNewAddrs 4) $ \_ layer _ _ -> do
402405
let pp = PaginationParams (Page 0) (PerPage 0)
403406
res <- runExceptT $ runHandler' $ do
404407
Handlers.listAddresses layer (RequestParams pp)
@@ -408,7 +411,7 @@ spec = describe "Addresses" $ do
408411

409412
prop "it yields the correct number of results" $ withMaxSuccess 20 $ do
410413
monadicIO $
411-
withAddressesFixtures 3 4 $ \_ layer _ (_, total) -> do
414+
withAddressesFixtures (DesiredNewAccs 3) (DesiredNewAddrs 4) $ \_ layer _ (_, total) -> do
412415
let pp = PaginationParams (Page 1) (PerPage 40)
413416
res <- runExceptT $ runHandler' $ do
414417
Handlers.listAddresses layer (RequestParams pp)
@@ -419,34 +422,18 @@ spec = describe "Addresses" $ do
419422

420423
prop "is deterministic" $ withMaxSuccess 20 $ do
421424
monadicIO $
422-
withAddressesFixtures 3 8 $ \_ layer _ (_, expectedTotal) -> do
425+
withAddressesFixtures (DesiredNewAccs 3) (DesiredNewAddrs 8) $ \_ layer _ (_, expectedTotal) -> do
423426
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)
428427
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
446433

447434
prop "yields the correct set of resutls" $ withMaxSuccess 20 $ do
448435
monadicIO $
449-
withAddressesFixtures 4 8 $ \_ layer _ (_, expectedTotal) -> do
436+
withAddressesFixtures (DesiredNewAccs 4) (DesiredNewAddrs 8) $ \_ layer _ (_, expectedTotal) -> do
450437
let ppSplit = quot expectedTotal 3 + 1
451438
pp = PaginationParams (Page 1) (PerPage 50)
452439
pp1 = PaginationParams (Page 1) (PerPage ppSplit)
@@ -471,7 +458,7 @@ spec = describe "Addresses" $ do
471458

472459
prop "yields the correct ordered resutls when there is one account" $ withMaxSuccess 20 $ do
473460
monadicIO $
474-
withAddressesFixtures 0 15 $ \_ layer _ (_, expectedTotal) -> do
461+
withAddressesFixtures (DesiredNewAccs 0) (DesiredNewAddrs 15) $ \_ layer _ (_, expectedTotal) -> do
475462
let ppSplit = quot expectedTotal 3 + 1
476463
pp = PaginationParams (Page 1) (PerPage 50)
477464
pp1 = PaginationParams (Page 1) (PerPage ppSplit)
@@ -497,7 +484,9 @@ spec = describe "Addresses" $ do
497484

498485
prop "yields the correct ordered resutls" $ withMaxSuccess 20 $ do
499486
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) ->
501490
withAddressesFixtures acc adr $ \_ layer _ (_, expectedTotal) -> do
502491
forM_ [2..10] $ \k -> do
503492
let indexes = [1..k]

0 commit comments

Comments
 (0)