git.iko.soy/typeable/elm-ui
on master help sign in
allow tests to be renameable
8190467Elm UI Automation
tests-rendering/src/Testable/Runner.elm+31−7
@@ -1,4 +1,12 @@
1−port module Testable.Runner exposing (Msg, TestableProgram, program, show)
1+port module Testable.Runner exposing
2+ ( Msg
3+ , Testable
4+ , TestableProgram
5+ , program
6+ , show
7+ , testable
8+ , rename
9+ )
2
10
3{-| -}
11{-| -}
4
12
@@ -26,6 +34,22 @@ type alias TestableProgram =
26 Program () (Model Msg) Msg
34 Program () (Model Msg) Msg
27
35
28
36
37+{-| This should be a real type, but I'm too busy atm.
38+-}
39+type alias Testable =
40+ ( String, Testable.Element Msg )
41+
42+
43+rename : String -> Testable -> Testable
44+rename newName ( _, el ) =
45+ ( newName, el )
46+
47+
48+testable : String -> Testable.Element Msg -> Testable
49+testable =
50+ Tuple.pair
51+
52+
29palette =
53palette =
30 { white = Element.rgb 1 1 1
54 { white = Element.rgb 1 1 1
31 , red = Element.rgb 1 0 0
55 , red = Element.rgb 1 0 0
@@ -35,7 +59,7 @@ palette =
35 }
59 }
36
60
37
61
38−program : List ( String, Testable.Element Msg ) -> TestableProgram
62+program : List Testable -> TestableProgram
39program tests =
63program tests =
40 let
64 let
41 ( current, upcoming ) =
65 ( current, upcoming ) =
@@ -347,16 +371,16 @@ viewElementHighlight model =
347
371
348
372
349viewResult : Int -> Int -> WithResults (Testable.Element Msg) -> Element.Element Msg
373viewResult : Int -> Int -> WithResults (Testable.Element Msg) -> Element.Element Msg
350−viewResult selectedIndex index testable =
374+viewResult selectedIndex index myTest =
351 if index == selectedIndex then
375 if index == selectedIndex then
352 Element.column
376 Element.column
353 [ Element.alignLeft
377 [ Element.alignLeft
354 , Element.spacing 16
378 , Element.spacing 16
355 ]
379 ]
356− [ Element.el [ Font.size 24 ] (Element.text testable.label)
380+ [ Element.el [ Font.size 24 ] (Element.text myTest.label)
357 , Element.column
381 , Element.column
358 [ Element.alignLeft, Element.spacing 16 ]
382 [ Element.alignLeft, Element.spacing 16 ]
359− (testable.results
383+ (myTest.results
360 |> groupBy .elementDomId
384 |> groupBy .elementDomId
361 |> List.map (expandDetails >> viewLayoutTestGroup)
385 |> List.map (expandDetails >> viewLayoutTestGroup)
362 )
386 )
@@ -376,7 +400,7 @@ viewResult selectedIndex index testable =
376 List.all isExpectationPassing layoutTest.expectations
400 List.all isExpectationPassing layoutTest.expectations
377
401
378 ( passing, failing ) =
402 ( passing, failing ) =
379− List.partition isPassing testable.results
403+ List.partition isPassing myTest.results
380 in
404 in
381 Element.column
405 Element.column
382 [ Element.alignLeft
406 [ Element.alignLeft
@@ -385,7 +409,7 @@ viewResult selectedIndex index testable =
385 , Events.onClick (Select index)
409 , Events.onClick (Select index)
386 ]
410 ]
387 [ Element.row [ Element.spacing 16 ]
411 [ Element.row [ Element.spacing 16 ]
388− [ Element.el [ Font.size 24 ] (Element.text testable.label)
412+ [ Element.el [ Font.size 24 ] (Element.text myTest.label)
389 , Element.text (String.fromInt (List.length passing) ++ " passing")
413 , Element.text (String.fromInt (List.length passing) ++ " passing")
390 , let
414 , let
391 failingCount =
415 failingCount =