elm-pages-v3-beta/tests/StaticHttpUnitTests.elm

103 lines
4.8 KiB
Elm
Raw Normal View History

module StaticHttpUnitTests exposing (all)
import Dict exposing (Dict)
import Expect
import Json.Decode as Decode
import Pages.Internal.Secrets
import Pages.StaticHttpRequest as StaticHttpRequest
import StaticHttp
import Test exposing (Test, describe, only, test)
all : Test
all =
describe "Static Http Requests"
[ test "andThen" <|
\() ->
StaticHttp.jsonRequest "first" (Decode.succeed "NEXT")
|> StaticHttp.andThen
(\continueUrl ->
-- StaticHttp.jsonRequest continueUrl (Decode.succeed ())
StaticHttp.jsonRequest "NEXT" (Decode.succeed ())
)
|> (\request ->
StaticHttpRequest.resolveUrls request
(Dict.fromList
[ ( "first", "null" )
, ( "NEXT", "null" )
]
)
|> Tuple.mapSecond (List.map Pages.Internal.Secrets.useFakeSecrets)
|> Expect.equal ( True, [ "first", "NEXT" ] )
)
, test "andThen staring with done" <|
\() ->
StaticHttp.succeed ()
|> StaticHttp.andThen
(\_ ->
StaticHttp.jsonRequest "NEXT" (Decode.succeed ())
)
|> (\request ->
StaticHttpRequest.resolveUrls request
(Dict.fromList
[ ( "NEXT", "null" )
]
)
|> Tuple.mapSecond (List.map Pages.Internal.Secrets.useFakeSecrets)
|> Expect.equal ( True, [ "NEXT" ] )
)
, test "map" <|
\() ->
StaticHttp.jsonRequest "first" (Decode.succeed "NEXT")
|> StaticHttp.andThen
(\continueUrl ->
-- StaticHttp.jsonRequest continueUrl (Decode.succeed ())
StaticHttp.jsonRequest "NEXT" (Decode.succeed ())
)
|> StaticHttp.map (\_ -> ())
|> (\request ->
StaticHttpRequest.resolveUrls request
(Dict.fromList
[ ( "first", "null" )
, ( "NEXT", "null" )
]
)
|> Tuple.mapSecond (List.map Pages.Internal.Secrets.useFakeSecrets)
|> Expect.equal ( True, [ "first", "NEXT" ] )
)
, test "andThen chain with 1 response available and 1 pending" <|
\() ->
StaticHttp.jsonRequest "first" (Decode.succeed "NEXT")
|> StaticHttp.andThen
(\continueUrl ->
StaticHttp.jsonRequest "NEXT" (Decode.succeed ())
)
|> (\request ->
StaticHttpRequest.resolveUrls request
(Dict.fromList
[ ( "first", "null" )
]
)
|> Tuple.mapSecond (List.map Pages.Internal.Secrets.useFakeSecrets)
|> Expect.equal ( True, [ "first", "NEXT" ] )
)
, test "andThen chain with 1 response available and 2 pending" <|
\() ->
StaticHttp.jsonRequest "first" Decode.int
|> StaticHttp.andThen
(\continueUrl ->
StaticHttp.jsonRequest "NEXT" Decode.string
|> StaticHttp.andThen
(\_ ->
StaticHttp.jsonRequest "LAST"
Decode.string
)
)
|> (\request ->
StaticHttpRequest.resolveUrls request
(Dict.fromList [ ( "first", "1" ) ])
|> Tuple.mapSecond (List.map Pages.Internal.Secrets.useFakeSecrets)
|> Expect.equal ( False, [ "first", "NEXT" ] )
)
]