github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/web/elm/tests/ApiEndpointsTests.elm (about)

     1  module ApiEndpointsTests exposing (testEndpoints, testToString)
     2  
     3  import Api.Endpoints as E exposing (Endpoint(..), toString)
     4  import Data
     5  import Expect
     6  import Test exposing (Test, describe, test)
     7  import Url.Builder
     8  
     9  
    10  testEndpoints : Test
    11  testEndpoints =
    12      describe "ApiEndpoints" <|
    13          let
    14              toPath =
    15                  toString []
    16          in
    17          [ test "PipelinesList" <|
    18              \_ ->
    19                  PipelinesList
    20                      |> toPath
    21                      |> Expect.equal "/api/v1/pipelines"
    22          , describe "Pipeline" <|
    23              let
    24                  basePipelineEndpoint =
    25                      Pipeline Data.pipelineId
    26              in
    27              [ test "Base" <|
    28                  \_ ->
    29                      E.BasePipeline
    30                          |> basePipelineEndpoint
    31                          |> toPath
    32                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline"
    33              , test "Pause" <|
    34                  \_ ->
    35                      E.PausePipeline
    36                          |> basePipelineEndpoint
    37                          |> toPath
    38                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/pause"
    39              , test "Unpause" <|
    40                  \_ ->
    41                      E.UnpausePipeline
    42                          |> basePipelineEndpoint
    43                          |> toPath
    44                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/unpause"
    45              , test "Expose" <|
    46                  \_ ->
    47                      E.ExposePipeline
    48                          |> basePipelineEndpoint
    49                          |> toPath
    50                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/expose"
    51              , test "Hide" <|
    52                  \_ ->
    53                      E.HidePipeline
    54                          |> basePipelineEndpoint
    55                          |> toPath
    56                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/hide"
    57              , test "JobsList" <|
    58                  \_ ->
    59                      E.PipelineJobsList
    60                          |> basePipelineEndpoint
    61                          |> toPath
    62                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/jobs"
    63              , test "ResourcesList" <|
    64                  \_ ->
    65                      E.PipelineResourcesList
    66                          |> basePipelineEndpoint
    67                          |> toPath
    68                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources"
    69              ]
    70          , test "JobsList" <|
    71              \_ ->
    72                  JobsList
    73                      |> toPath
    74                      |> Expect.equal "/api/v1/jobs"
    75          , describe "Job" <|
    76              let
    77                  baseJobEndpoint =
    78                      Job Data.jobId
    79              in
    80              [ test "Base" <|
    81                  \_ ->
    82                      E.BaseJob
    83                          |> baseJobEndpoint
    84                          |> toPath
    85                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/jobs/job"
    86              , test "Pause" <|
    87                  \_ ->
    88                      E.PauseJob
    89                          |> baseJobEndpoint
    90                          |> toPath
    91                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/jobs/job/pause"
    92              , test "Unpause" <|
    93                  \_ ->
    94                      E.UnpauseJob
    95                          |> baseJobEndpoint
    96                          |> toPath
    97                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/jobs/job/unpause"
    98              , test "BuildsList" <|
    99                  \_ ->
   100                      E.JobBuildsList
   101                          |> baseJobEndpoint
   102                          |> toPath
   103                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/jobs/job/builds"
   104              ]
   105          , test "JobBuild" <|
   106              \_ ->
   107                  JobBuild
   108                      (Data.jobBuildId
   109                          |> Data.withBuildName "build"
   110                          |> Data.withJobName "job"
   111                          |> Data.withPipelineName "pipeline"
   112                          |> Data.withTeamName "team"
   113                      )
   114                      |> toPath
   115                      |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/jobs/job/builds/build"
   116          , describe "Build" <|
   117              let
   118                  baseBuildEndpoint =
   119                      Build 1
   120              in
   121              [ test "Base" <|
   122                  \_ ->
   123                      E.BaseBuild
   124                          |> baseBuildEndpoint
   125                          |> toPath
   126                          |> Expect.equal "/api/v1/builds/1"
   127              , test "Plan" <|
   128                  \_ ->
   129                      E.BuildPlan
   130                          |> baseBuildEndpoint
   131                          |> toPath
   132                          |> Expect.equal "/api/v1/builds/1/plan"
   133              , test "Prep" <|
   134                  \_ ->
   135                      E.BuildPrep
   136                          |> baseBuildEndpoint
   137                          |> toPath
   138                          |> Expect.equal "/api/v1/builds/1/preparation"
   139              , test "Abort" <|
   140                  \_ ->
   141                      E.AbortBuild
   142                          |> baseBuildEndpoint
   143                          |> toPath
   144                          |> Expect.equal "/api/v1/builds/1/abort"
   145              , test "ResourcesList" <|
   146                  \_ ->
   147                      E.BuildResourcesList
   148                          |> baseBuildEndpoint
   149                          |> toPath
   150                          |> Expect.equal "/api/v1/builds/1/resources"
   151              , test "EventStream" <|
   152                  \_ ->
   153                      E.BuildEventStream
   154                          |> baseBuildEndpoint
   155                          |> toPath
   156                          |> Expect.equal "/api/v1/builds/1/events"
   157              ]
   158          , test "ResourcesList" <|
   159              \_ ->
   160                  ResourcesList
   161                      |> toPath
   162                      |> Expect.equal "/api/v1/resources"
   163          , describe "Resource" <|
   164              let
   165                  baseResourceEndpoint =
   166                      Resource Data.resourceId
   167              in
   168              [ test "Base" <|
   169                  \_ ->
   170                      E.BaseResource
   171                          |> baseResourceEndpoint
   172                          |> toPath
   173                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource"
   174              , test "VersionsList" <|
   175                  \_ ->
   176                      E.ResourceVersionsList
   177                          |> baseResourceEndpoint
   178                          |> toPath
   179                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/versions"
   180              , test "Unpin" <|
   181                  \_ ->
   182                      E.UnpinResource
   183                          |> baseResourceEndpoint
   184                          |> toPath
   185                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/unpin"
   186              , test "Check" <|
   187                  \_ ->
   188                      E.CheckResource
   189                          |> baseResourceEndpoint
   190                          |> toPath
   191                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/check"
   192              , test "PinComment" <|
   193                  \_ ->
   194                      E.PinResourceComment
   195                          |> baseResourceEndpoint
   196                          |> toPath
   197                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/pin_comment"
   198              ]
   199          , describe "ResourceVersion" <|
   200              let
   201                  baseVersionEndpoint =
   202                      ResourceVersion (Data.resourceVersionId 1)
   203              in
   204              [ test "InputTo" <|
   205                  \_ ->
   206                      E.ResourceVersionInputTo
   207                          |> baseVersionEndpoint
   208                          |> toPath
   209                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/versions/1/input_to"
   210              , test "OutputOf" <|
   211                  \_ ->
   212                      E.ResourceVersionOutputOf
   213                          |> baseVersionEndpoint
   214                          |> toPath
   215                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/versions/1/output_of"
   216              , test "Pin" <|
   217                  \_ ->
   218                      E.PinResourceVersion
   219                          |> baseVersionEndpoint
   220                          |> toPath
   221                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/versions/1/pin"
   222              , test "Enable" <|
   223                  \_ ->
   224                      E.EnableResourceVersion
   225                          |> baseVersionEndpoint
   226                          |> toPath
   227                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/versions/1/enable"
   228              , test "Disable" <|
   229                  \_ ->
   230                      E.DisableResourceVersion
   231                          |> baseVersionEndpoint
   232                          |> toPath
   233                          |> Expect.equal "/api/v1/teams/team/pipelines/pipeline/resources/resource/versions/1/disable"
   234              ]
   235          , test "TeamsList" <|
   236              \_ ->
   237                  TeamsList
   238                      |> toPath
   239                      |> Expect.equal "/api/v1/teams"
   240          , describe "Team" <|
   241              let
   242                  baseTeamEndpoint =
   243                      Team "team"
   244              in
   245              [ test "PipelinesList" <|
   246                  \_ ->
   247                      E.TeamPipelinesList
   248                          |> baseTeamEndpoint
   249                          |> toPath
   250                          |> Expect.equal "/api/v1/teams/team/pipelines"
   251              , test "OrderPipelines" <|
   252                  \_ ->
   253                      E.OrderTeamPipelines
   254                          |> baseTeamEndpoint
   255                          |> toPath
   256                          |> Expect.equal "/api/v1/teams/team/pipelines/ordering"
   257              ]
   258          , test "ClusterInfo" <|
   259              \_ ->
   260                  ClusterInfo
   261                      |> toPath
   262                      |> Expect.equal "/api/v1/info"
   263          , test "Cli" <|
   264              \_ ->
   265                  Cli
   266                      |> toPath
   267                      |> Expect.equal "/api/v1/cli"
   268          , test "UserInfo" <|
   269              \_ ->
   270                  UserInfo
   271                      |> toPath
   272                      |> Expect.equal "/api/v1/user"
   273          , test "Logout" <|
   274              \_ ->
   275                  Logout
   276                      |> toPath
   277                      |> Expect.equal "/sky/logout"
   278          ]
   279  
   280  
   281  testToString : Test
   282  testToString =
   283      describe "toString"
   284          [ test "adds query params" <|
   285              \_ ->
   286                  Logout
   287                      |> toString [ Url.Builder.string "hello" "world" ]
   288                      |> Expect.equal "/sky/logout?hello=world"
   289          ]