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

     1  module RequestBufferTests exposing (all)
     2  
     3  import Common
     4  import Dashboard.RequestBuffer exposing (Buffer(..), handleCallback, handleDelivery)
     5  import Expect
     6  import Message.Callback exposing (Callback(..))
     7  import Message.Effects exposing (Effect(..))
     8  import Message.Subscription exposing (Delivery(..), Interval(..))
     9  import Test exposing (Test, describe, test)
    10  import Time
    11  
    12  
    13  all : Test
    14  all =
    15      describe "RequestBuffer"
    16          [ test "auto refreshes on five-second tick after previous request finishes" <|
    17              \_ ->
    18                  ( False, [] )
    19                      |> handleCallback callback [ buffer ]
    20                      |> handleDelivery
    21                          (ClockTicked FiveSeconds <| Time.millisToPosix 0)
    22                          [ buffer ]
    23                      |> Tuple.second
    24                      |> Common.contains effect
    25          , test "doesn't fetch until the first request finishes" <|
    26              \_ ->
    27                  ( False, [] )
    28                      |> handleDelivery
    29                          (ClockTicked FiveSeconds <| Time.millisToPosix 0)
    30                          [ buffer ]
    31                      |> Tuple.second
    32                      |> Common.notContains effect
    33          , test "doesn't fetch until the last request finishes" <|
    34              \_ ->
    35                  ( False, [] )
    36                      |> handleCallback callback [ buffer ]
    37                      |> handleDelivery
    38                          (ClockTicked FiveSeconds <| Time.millisToPosix 0)
    39                          [ buffer ]
    40                      |> handleDelivery
    41                          (ClockTicked FiveSeconds <| Time.millisToPosix 0)
    42                          [ buffer ]
    43                      |> Tuple.second
    44                      |> Expect.equal [ effect ]
    45          ]
    46  
    47  
    48  callback =
    49      EmptyCallback
    50  
    51  
    52  effect =
    53      FetchUser
    54  
    55  
    56  buffer : Buffer Bool
    57  buffer =
    58      Buffer effect
    59          ((==) callback)
    60          (always False)
    61          { get = identity
    62          , set = always
    63          }