@@ -25,12 +25,12 @@ main :: IO ()
25
25
main = hspec $ do
26
26
describe " generateDpopToken FFI when passing valid inputs" $ do
27
27
it " should return an access token" $ do
28
- actual <- callFFIWithValidValuesValidUntil2038
28
+ actual <- runExceptT $ generateDpopToken proof uid cid domain nonce uri method maxSkewSecs expires now pem
29
29
isRight actual `shouldBe` True
30
- describe " generateDpopToken FFI when passing nonsense values " $ do
31
- it " should return an error " $ do
32
- actual <- callFFIWithNonsenseValues
33
- isRight actual `shouldBe` False
30
+ describe " generateDpopToken FFI when passing a wrong nonce value " $ do
31
+ it " should return BackendNonceMismatchError " $ do
32
+ actual <- runExceptT $ generateDpopToken proof uid cid domain ( Nonce " foobar " ) uri method maxSkewSecs expires now pem
33
+ actual `shouldBe` Left BackendNonceMismatchError
34
34
describe " toResult" $ do
35
35
it " should convert to correct error" $ do
36
36
toResult Nothing (Just token) `shouldBe` Right (cs token)
@@ -72,36 +72,7 @@ main = hspec $ do
72
72
toResult (Just 18 ) (Just token) `shouldBe` Left ExpError
73
73
toResult Nothing Nothing `shouldBe` Left UnknownError
74
74
where
75
- token :: String
76
75
token = " eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
77
-
78
- callFFIWithNonsenseValues :: IO (Either DPoPTokenGenerationError ByteString )
79
- callFFIWithNonsenseValues =
80
- runExceptT $ generateDpopToken proof uid cid domain nonce uri method maxSkewSecs expires now pem
81
- where
82
- proof = Proof " xxxx.yyyy.zzzz"
83
- uid = UserId " 8a6e8a6e-8a6e-8a6e-8a6e-8a6e8a6e8a6e"
84
- cid = ClientId 8899
85
- domain = Domain " example.com"
86
- nonce = Nonce " 123"
87
- uri = Uri " /foo"
88
- method = POST
89
- maxSkewSecs = MaxSkewSecs 1
90
- now = NowEpoch 5435234232
91
- expires = ExpiryEpoch $ 5435234232 + 360
92
- pem =
93
- PemBundle $
94
- " -----BEGIN PRIVATE KEY-----\n \
95
- \MC4CAQAwBQYDK2VwBCIEIFANnxZLNE4p+GDzWzR3wm/v8x/0bxZYkCyke1aTRucX\n \
96
- \-----END PRIVATE KEY-----\n \
97
- \-----BEGIN PUBLIC KEY-----\n \
98
- \MCowBQYDK2VwAyEACPvhIdimF20tOPjbb+fXJrwS2RKDp7686T90AZ0+Th8=\n \
99
- \-----END PUBLIC KEY-----\n "
100
-
101
- callFFIWithValidValuesValidUntil2038 :: IO (Either DPoPTokenGenerationError ByteString )
102
- callFFIWithValidValuesValidUntil2038 =
103
- runExceptT $ generateDpopToken proof uid cid domain nonce uri method maxSkewSecs expires now pem
104
- where
105
76
proof = Proof " eyJhbGciOiJFZERTQSIsInR5cCI6ImRwb3Arand0IiwiandrIjp7Imt0eSI6Ik9LUCIsImNydiI6IkVkMjU1MTkiLCJ4IjoiZ0tYSHpIV3QtRUh1N2ZQbmlWMXFXWGV2Rmk1eFNKd3RNcHJlSjBjdTZ3SSJ9fQ.eyJpYXQiOjE2NzgxMDcwMDksImV4cCI6MjA4ODA3NTAwOSwibmJmIjoxNjc4MTA3MDA5LCJzdWIiOiJpbXBwOndpcmVhcHA9WXpWbE1qRTVNelpqTTJKak5EQXdOMkpsWTJJd1lXTm1OVGszTW1FMVlqTS9lYWZhMDI1NzMwM2Q0MDYwQHdpcmUuY29tIiwianRpIjoiMmQzNzAzYTItNTc4Yi00MmRjLWE2MGUtYmM0NzA3OWVkODk5Iiwibm9uY2UiOiJRV1J4T1VaUVpYVnNTMlJZYjBGS05sWkhXbGgwYUV4amJUUmpTM2M1U2xnIiwiaHRtIjoiUE9TVCIsImh0dSI6Imh0dHBzOi8vd2lyZS5leGFtcGxlLmNvbS9jbGllbnRzLzE2OTMxODQ4MzIyNTQ3NTMxODcyL2FjY2Vzcy10b2tlbiIsImNoYWwiOiJZVE5HTkRSNlRqZHFabGRRZUVGYWVrMTZWMmhqYXpCVmJ6UlFWVXRWUlZJIn0.0J2sx5y0ubZ4NwmQhbKXDj6i5UWTx3cvuTPKbeXXOJFDamr-iFtE6sOnAQT90kfTx1cEoIyDfoUkj3h5GEanAA"
106
77
uid = UserId " c5e21936-c3bc-4007-becb-0acf5972a5b3"
107
78
cid = ClientId 16931848322547531872
0 commit comments