packages feed

lti13-0.3.0.0: tests/AnonSpec.hs

{-# LANGUAGE OverloadedStrings #-}
-- | Tests the various parsers in lti13 round-trip and parse the samples.
module AnonSpec (spec) where

import Test.Hspec hiding (context)
import Prelude
import Web.LTI13

exampleToken :: UncheckedLtiTokenClaims
exampleToken = UncheckedLtiTokenClaims
    { messageType = "LtiResourceLinkRequest"
    , ltiVersion = "1.3.0"
    , deploymentId = "07940580-b309-415e-a37c-914d387c1150"
    , targetLinkUri = "https://tool.example.com/lti/48320/ruix8782rs"
    , roles = [Other "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student",Learner,Mentor]
    , email = secret
    , displayName = secret
    , firstName = secret
    , lastName = secret
    , context = Just (
        ContextClaim
        { contextId = "c1d887f0-a1a3-4bca-ae25-c375edcc131a"
        , contextLabel = Just "ECON 1010"
        , contextTitle = Just "Economics as a Social Science"}
    )
    , lis = Just (
        LisClaim {
              personSourcedId = secret
            , outcomeServiceUrl = Nothing
            , courseOfferingSourcedId = Just "example.edu:SI182-F16"
            , courseSectionSourcedId = Just "example.edu:SI182-001-F16"
            , resultSourcedId = Nothing
        }
    )}
    where
        secret = Just "secret"

spec :: Spec
spec = do
    it "removes secrets" $ do
        show exampleToken `shouldContain` "secret"
        (show . anonymizeLtiTokenForLogging $ exampleToken) `shouldNotContain` "secret"