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 (..)
|
module PhotoGrooveTest exposing (..)
|
||||||
|
|
||||||
import Expect
|
import Expect
|
||||||
import Fuzz
|
import Fuzz exposing (Fuzzer)
|
||||||
import Html.Attributes as Attr
|
import Html.Attributes as Attr
|
||||||
import Json.Decode as J
|
import Json.Decode as J
|
||||||
import Json.Encode as Encode
|
import Json.Encode as Encode
|
||||||
import PhotoGroove.Internal as Testee exposing (FilterType(..), FilterValues, Message(..), Photo, filterTypeToName, initialModel)
|
import PhotoGroove.Internal as Testee exposing (FilterType(..), FilterValues, Message(..), Photo, filterTypeToName, initialModel)
|
||||||
import Test exposing (..)
|
import Test exposing (..)
|
||||||
|
import Test.Html.Event as Event
|
||||||
import Test.Html.Query as Query
|
import Test.Html.Query as Query
|
||||||
import Test.Html.Selector exposing (attribute, tag)
|
import Test.Html.Selector exposing (attribute, tag)
|
||||||
|
|
||||||
|
|
@ -89,6 +90,28 @@ thumbnailRendered url query =
|
||||||
|> Query.count (Expect.atLeast 1)
|
|> 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 : String -> Photo
|
||||||
photoFromUrl url =
|
photoFromUrl url =
|
||||||
{ url = url, size = 0, title = "" }
|
{ url = url, size = 0, title = "" }
|
||||||
|
|
@ -105,3 +128,15 @@ selectedUrl status =
|
||||||
|
|
||||||
Testee.Errored _ ->
|
Testee.Errored _ ->
|
||||||
Nothing
|
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