@@ -46,7 +46,7 @@ program tests =
46 cur :: remaining ->
46 cur :: remaining ->
47 ( Just cur, remaining )
47 ( Just cur, remaining )
49− Browser.document
49+ Browser.element
52 ( { current = current
52 ( { current = current
@@ -136,8 +136,9 @@ type Msg
137 { id : String
137 { id : String
138 , bbox : Testable.BoundingBox
138 , bbox : Testable.BoundingBox
140 , style : List ( String, String )
139 , style : List ( String, String )
141+ , textMetrics : List TextMetrics
@@ -225,70 +226,61 @@ update msg model =
228−view : Model Msg -> Browser.Document Msg
229+view : Model Msg -> Html.Html Msg
229view model =
230view model =
230 case model.current of
231 case model.current of
231 Nothing ->
232 Nothing ->
232 if List.isEmpty model.upcoming then
233 if List.isEmpty model.upcoming then
233− { title = "tests finished"
235− [ case model.finished of
234+ case model.finished of
237− Element.layout [] <|
236+ Element.layout [] <|
238+ [ Element.spacing 20
239+ , Element.padding 20
240+ , Element.width (Element.px 800)
244+ finished :: remaining ->
247+ , Element.inFront (Element.html (viewElementHighlight model))
250+ Element.row [ Element.width Element.fill ]
252+ [ Element.width Element.fill
256+ , Element.padding 100
259+ , Border.color palette.lightGrey
264+ , Font.color palette.lightGrey
266+ (Element.text "test case")
269+ (Testable.toElement finished.element)
238− Element.column
271+ , Element.column
239 [ Element.spacing 20
272 [ Element.spacing 20
240 , Element.padding 20
273 , Element.padding 20
241− , Element.width (Element.px 800)
274+ , Element.width Element.fill
245− finished :: remaining ->
276+ (List.map viewResult (finished :: remaining))
248− , Element.inFront (Element.html (viewElementHighlight model))
251− Element.row [ Element.width Element.fill ]
253− [ Element.width Element.fill
257− , Element.padding 100
260− , Border.color palette.lightGrey
265− , Font.color palette.lightGrey
267− (Element.text "test case")
270− (Testable.toElement finished.element)
273− [ Element.spacing 20
274− , Element.padding 20
275− , Element.width Element.fill
277− (List.map viewResult (finished :: remaining))
283− { title = "tests finished"
280+ Html.text ""
287 Just ( label, current ) ->
282 Just ( label, current ) ->
290− [ Testable.toHtml current ]
283+ Testable.toHtml current
294viewElementHighlight model =
286viewElementHighlight model =
@@ -492,7 +484,17 @@ port styles :
492 , bbox : Testable.BoundingBox
484 , bbox : Testable.BoundingBox
493 , style : List ( String, String )
485 , style : List ( String, String )
494 , isVisible : Bool
486 , isVisible : Bool
487+ , textMetrics : List TextMetrics
498 -> Sub msg
491 -> Sub msg
494+type alias TextMetrics =
495+ { actualBoundingBoxAscent : Float
496+ , actualBoundingBoxDescent : Float
497+ , actualBoundingBoxLeft : Float
498+ , actualBoundingBoxRight : Float