Ensure that ClickedThumbnail message is emitted
This commit is contained in:
parent
9045353810
commit
fd48480a05
1 changed files with 36 additions and 1 deletions
|
|
@ -1,12 +1,13 @@
|
|||
module PhotoGrooveTest exposing (..)
|
||||
|
||||
import Expect
|
||||
import Fuzz
|
||||
import Fuzz exposing (Fuzzer)
|
||||
import Html.Attributes as Attr
|
||||
import Json.Decode as J
|
||||
import Json.Encode as Encode
|
||||
import PhotoGroove.Internal as Testee exposing (FilterType(..), FilterValues, Message(..), Photo, filterTypeToName, initialModel)
|
||||
import Test exposing (..)
|
||||
import Test.Html.Event as Event
|
||||
import Test.Html.Query as Query
|
||||
import Test.Html.Selector exposing (attribute, tag)
|
||||
|
||||
|
|
@ -89,6 +90,28 @@ thumbnailRendered url query =
|
|||
|> Query.count (Expect.atLeast 1)
|
||||
|
||||
|
||||
clickThumbnail : Test
|
||||
clickThumbnail =
|
||||
fuzz3 urlFuzzer Fuzz.string urlFuzzer "clicking a thumbnail selects it" <|
|
||||
\urlsBefore urlSelected urlsAfter ->
|
||||
let
|
||||
url =
|
||||
urlSelected ++ ".jpeg"
|
||||
|
||||
photos =
|
||||
(urlsBefore ++ url :: urlsAfter) |> List.map photoFromUrl
|
||||
|
||||
srcToClick =
|
||||
Testee.urlPrefix ++ url
|
||||
in
|
||||
{ initialModel | status = Testee.Loaded photos "" }
|
||||
|> Testee.view
|
||||
|> Query.fromHtml
|
||||
|> Query.find [ tag "img", attribute (Attr.src srcToClick) ]
|
||||
|> Event.simulate Event.click
|
||||
|> Event.expect (Testee.ClickedThumbnail url)
|
||||
|
||||
|
||||
photoFromUrl : String -> Photo
|
||||
photoFromUrl url =
|
||||
{ url = url, size = 0, title = "" }
|
||||
|
|
@ -105,3 +128,15 @@ selectedUrl status =
|
|||
|
||||
Testee.Errored _ ->
|
||||
Nothing
|
||||
|
||||
|
||||
urlFuzzer : Fuzzer (List String)
|
||||
urlFuzzer =
|
||||
Fuzz.intRange 1 5
|
||||
|> Fuzz.map urlsFromCount
|
||||
|
||||
|
||||
urlsFromCount : Int -> List String
|
||||
urlsFromCount count =
|
||||
List.range 1 count
|
||||
|> List.map (\num -> String.fromInt num ++ ".jpg")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue