diff --git a/src/Session.elm b/src/Session.elm index 4973fc5..181e290 100644 --- a/src/Session.elm +++ b/src/Session.elm @@ -1,6 +1,7 @@ port module Session exposing (Person, Session(..), changeSession, decode, encode, logout, navKey, onSessionChange, storeSession) {-| Represent the current user +The user can be authenticated or a guest -} import Browser.Navigation as Nav @@ -53,11 +54,6 @@ port storeSession : Maybe JD.Value -> Cmd msg port onSessionChange : (JE.Value -> msg) -> Sub msg - --- create function which use onSessionChange: pass transform value to maybe person --- create change function which transform a maybe person to session - - changeSession : (Session -> msg) -> Nav.Key -> Sub msg changeSession toMsg key = changePerson (\maybePerson -> toMsg (sessionFromPerson maybePerson key)) @@ -91,6 +87,10 @@ decodeFromChange decoder val = |> Result.toMaybe + +-- set value in localStorage to null + + logout : Cmd msg logout = storeSession Nothing diff --git a/tests/RouteTests.elm b/tests/RouteTests.elm index 937aec4..7968be0 100644 --- a/tests/RouteTests.elm +++ b/tests/RouteTests.elm @@ -79,4 +79,21 @@ suite = in Parser.parse Route.routeParser url |> Expect.equal Nothing + , test "Test logout route" <| + \_ -> + let + defaultUrl = + { protocol = Url.Https + , host = "dwyl.com" + , port_ = Just 443 + , path = "/" + , query = Nothing + , fragment = Nothing + } + + url = + Maybe.withDefault defaultUrl (Url.fromString "http://locahost/logout") + in + Parser.parse Route.routeParser url + |> Expect.equal (Just Route.Logout) ]