github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/web/elm/tests/SerializationTests.elm (about) 1 module SerializationTests exposing (all) 2 3 import Concourse 4 import Concourse.BuildStatus as BuildStatus 5 import Data 6 import Expect 7 import Json.Decode 8 import Test exposing (Test, describe, test) 9 import Time 10 11 12 all : Test 13 all = 14 describe "type serialization/deserialization" 15 [ test "job encoding/decoding are inverses" <| 16 \_ -> 17 let 18 job = 19 Data.job 1 20 in 21 job 22 |> Concourse.encodeJob 23 |> Json.Decode.decodeValue Concourse.decodeJob 24 |> Expect.equal (Ok job) 25 , test "resource encoding/decoding are inverses" <| 26 \_ -> 27 let 28 resource = 29 Data.resource "version" 30 in 31 resource 32 |> Concourse.encodeResource 33 |> Json.Decode.decodeValue Concourse.decodeResource 34 |> Expect.equal (Ok resource) 35 , test "build encoding/decoding are inverses" <| 36 \_ -> 37 let 38 buildWithoutDuration = 39 Data.jobBuild BuildStatus.BuildStatusPending 40 41 build = 42 { buildWithoutDuration 43 | duration = 44 { startedAt = 45 Just <| Time.millisToPosix 1000 46 , finishedAt = 47 Just <| Time.millisToPosix 2000 48 } 49 } 50 in 51 build 52 |> Concourse.encodeBuild 53 |> Json.Decode.decodeValue Concourse.decodeBuild 54 |> Expect.equal (Ok build) 55 , test "pipeline encoding/decoding are inverses" <| 56 \_ -> 57 let 58 pipeline = 59 Data.pipeline "team" 1 60 in 61 pipeline 62 |> Concourse.encodePipeline 63 |> Json.Decode.decodeValue Concourse.decodePipeline 64 |> Expect.equal (Ok pipeline) 65 , test "team encoding/decoding are inverses" <| 66 \_ -> 67 let 68 team = 69 { id = 1 70 , name = "team" 71 } 72 in 73 team 74 |> Concourse.encodeTeam 75 |> Json.Decode.decodeValue Concourse.decodeTeam 76 |> Expect.equal (Ok team) 77 ]