@@ -14,6 +14,7 @@ import Imports
14
14
import System.Process
15
15
import Test.Tasty
16
16
import Test.Tasty.HUnit
17
+ import UnliftIO.Temporary
17
18
import Util
18
19
import Wire.API.MLS.KeyPackage
19
20
import Wire.API.User
@@ -31,8 +32,9 @@ tests m b _opts =
31
32
testKeyPackageUpload :: Brig -> Http ()
32
33
testKeyPackageUpload brig = do
33
34
u <- userQualifiedId <$> randomUser brig
34
- c <- randomClient
35
- uploadKeyPackages brig u c 5
35
+ c <- createClient brig u 0
36
+ withSystemTempFile " store.db" $ \ store _ ->
37
+ uploadKeyPackages brig store u c 5
36
38
37
39
count :: KeyPackageCount <-
38
40
responseJsonError
@@ -61,16 +63,10 @@ testKeyPackageClaim brig = do
61
63
-- setup a user u with two clients c1 and c2
62
64
u <- userQualifiedId <$> randomUser brig
63
65
[c1, c2] <- for [0 , 1 ] $ \ i -> do
64
- c <-
65
- fmap clientId $
66
- responseJsonError
67
- =<< addClient
68
- brig
69
- (qUnqualified u)
70
- (defNewClient PermanentClientType [somePrekeys !! i] (someLastPrekeys !! i))
71
- <!! const 201 === statusCode
66
+ c <- createClient brig u i
72
67
-- upload 5 key packages for each client
73
- uploadKeyPackages brig u c 5
68
+ withSystemTempFile " store.db" $ \ store _ ->
69
+ uploadKeyPackages brig store u c 5
74
70
pure c
75
71
76
72
-- claim packages for both clients of u
@@ -98,16 +94,28 @@ testKeyPackageClaim brig = do
98
94
99
95
--------------------------------------------------------------------------------
100
96
101
- uploadKeyPackages :: Brig -> Qualified UserId -> ClientId -> Int -> Http ()
102
- uploadKeyPackages brig u c n = do
103
- let cmd =
104
- " crypto-cli key-package "
105
- <> show (qUnqualified u)
97
+ createClient :: Brig -> Qualified UserId -> Int -> Http ClientId
98
+ createClient brig u i =
99
+ fmap clientId $
100
+ responseJsonError
101
+ =<< addClient
102
+ brig
103
+ (qUnqualified u)
104
+ (defNewClient PermanentClientType [somePrekeys !! i] (someLastPrekeys !! i))
105
+ <!! const 201 === statusCode
106
+
107
+ uploadKeyPackages :: Brig -> FilePath -> Qualified UserId -> ClientId -> Int -> Http ()
108
+ uploadKeyPackages brig store u c n = do
109
+ let cmd0 = [" crypto-cli" , " --store" , store, " --enc-key" , " test" ]
110
+ clientId =
111
+ show (qUnqualified u)
106
112
<> " :"
107
113
<> T. unpack (client c)
108
114
<> " @"
109
115
<> T. unpack (domainText (qDomain u))
110
- kps <- replicateM n . liftIO . fmap (KeyPackageData . LBS. fromStrict) . spawn $ shell cmd
116
+ kps <-
117
+ replicateM n . liftIO . fmap (KeyPackageData . LBS. fromStrict) . spawn . shell . unwords $
118
+ cmd0 <> [" key-package" , clientId]
111
119
let upload = KeyPackageUpload kps
112
120
post
113
121
( brig
0 commit comments