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          ]