|
1 | 1 | module Test.E2E.Route.Session exposing (tests) |
2 | 2 |
|
3 | 3 |
|
| 4 | +import Bytes |
4 | 5 | import Db |
5 | 6 | import Db.Encode |
6 | 7 | import Db.Decode |
7 | 8 | import Email |
8 | 9 | import Expect |
9 | 10 | import HttpClient |
| 11 | +import Json.Decode |
10 | 12 | import Json.Encode |
11 | 13 | import Task exposing (Task) |
12 | 14 | import Test.Runner.Effectful exposing (Test, await, awaitError, concat, describe, test) |
13 | | -import Test.E2E.Helper exposing (initDb, get, post, postWithJson, expectBadStatus) |
| 15 | +import Test.E2E.Helper exposing (initDb, get, post, postWithJson, expectBadStatus, expectJson) |
14 | 16 | import User exposing (User) |
15 | 17 |
|
16 | 18 |
|
@@ -62,10 +64,29 @@ tests httpPerm = |
62 | 64 | [ test "Responds successfully" <| \_ -> |
63 | 65 | Expect.equal 200 response.statusCode |
64 | 66 |
|
65 | | - , await "Getting created user from db" (getUser goodEmail) <| \user -> |
66 | | - test "returns the created user" <| \_ -> |
67 | | - Email.toString user.email |
68 | | - |> Expect.equal goodEmail |
| 67 | + , await "Getting session info from db" |
| 68 | + (Db.getOne db |
| 69 | + { query = |
| 70 | + """ |
| 71 | + select fetch_session_token from session |
| 72 | + inner join user on (user.id = session.user_id) |
| 73 | + where user.email = :email |
| 74 | + order by session.created desc |
| 75 | + limit 1 |
| 76 | + """ |
| 77 | + , parameters = |
| 78 | + [ Db.Encode.string "email" goodEmail ] |
| 79 | + , decoder = |
| 80 | + Db.Decode.string "fetch_session_token" |
| 81 | + } |
| 82 | + ) |
| 83 | + (\expectedToken -> |
| 84 | + test "responds with fetch session token" <| \_ -> |
| 85 | + response.data |
| 86 | + |> expectJson |
| 87 | + (Json.Decode.field "fetch_session_token" Json.Decode.string) |
| 88 | + expectedToken |
| 89 | + ) |
69 | 90 | ] |
70 | 91 | ] |
71 | 92 | ] |
0 commit comments