@@ -46,7 +46,7 @@ program tests =
4646 cur :: remaining ->
4747 ( Just cur, remaining )
4848 in
49− Browser.document
49+ Browser.element
5050 { init =
5151 always
5252 ( { current = current
@@ -136,8 +136,9 @@ type Msg
136136 (List
137137 { id : String
138138 , bbox : Testable.BoundingBox
139− , isVisible : Bool
140139 , style : List ( String, String )
140+ , isVisible : Bool
141+ , textMetrics : List TextMetrics
141142 }
142143 )
143144
@@ -225,70 +226,61 @@ update msg model =
225226 )
226227
227228
228−view : Model Msg -> Browser.Document Msg
229+view : Model Msg -> Html.Html Msg
229230view model =
230231 case model.current of
231232 Nothing ->
232233 if List.isEmpty model.upcoming then
233− { title = "tests finished"
234− , body =
235− [ case model.finished of
236− [] ->
237− Element.layout [] <|
238− Element.column
234+ case model.finished of
235+ [] ->
236+ Element.layout [] <|
237+ Element.column
238+ [ Element.spacing 20
239+ , Element.padding 20
240+ , Element.width (Element.px 800)
241+ ]
242+ [ Element.none ]
243+
244+ finished :: remaining ->
245+ Element.layout
246+ [ Font.size 16
247+ , Element.inFront (Element.html (viewElementHighlight model))
248+ ]
249+ <|
250+ Element.row [ Element.width Element.fill ]
251+ [ Element.el
252+ [ Element.width Element.fill
253+ ]
254+ (Element.el
255+ [ Element.centerX
256+ , Element.padding 100
257+ , Border.dashed
258+ , Border.width 2
259+ , Border.color palette.lightGrey
260+ , Font.size 20
261+ , Element.inFront
262+ (Element.el
263+ [ Font.size 14
264+ , Font.color palette.lightGrey
265+ ]
266+ (Element.text "test case")
267+ )
268+ ]
269+ (Testable.toElement finished.element)
270+ )
271+ , Element.column
239272 [ Element.spacing 20
240273 , Element.padding 20
241− , Element.width (Element.px 800)
274+ , Element.width Element.fill
242275 ]
243− [ Element.none ]
244−
245− finished :: remaining ->
246− Element.layout
247− [ Font.size 16
248− , Element.inFront (Element.html (viewElementHighlight model))
276+ (List.map viewResult (finished :: remaining))
249277 ]
250− <|
251− Element.row [ Element.width Element.fill ]
252− [ Element.el
253− [ Element.width Element.fill
254− ]
255− (Element.el
256− [ Element.centerX
257− , Element.padding 100
258− , Border.dashed
259− , Border.width 2
260− , Border.color palette.lightGrey
261− , Font.size 20
262− , Element.inFront
263− (Element.el
264− [ Font.size 14
265− , Font.color palette.lightGrey
266− ]
267− (Element.text "test case")
268− )
269− ]
270− (Testable.toElement finished.element)
271− )
272− , Element.column
273− [ Element.spacing 20
274− , Element.padding 20
275− , Element.width Element.fill
276− ]
277− (List.map viewResult (finished :: remaining))
278− ]
279− ]
280− }
281278
282279 else
283− { title = "tests finished"
284− , body = []
285− }
280+ Html.text ""
286281
287282 Just ( label, current ) ->
288− { title = "running"
289− , body =
290− [ Testable.toHtml current ]
291− }
283+ Testable.toHtml current
292284
293285
294286viewElementHighlight model =
@@ -492,7 +484,17 @@ port styles :
492484 , bbox : Testable.BoundingBox
493485 , style : List ( String, String )
494486 , isVisible : Bool
487+ , textMetrics : List TextMetrics
495488 }
496489 -> msg
497490 )
498491 -> Sub msg
492+
493+
494+type alias TextMetrics =
495+ { actualBoundingBoxAscent : Float
496+ , actualBoundingBoxDescent : Float
497+ , actualBoundingBoxLeft : Float
498+ , actualBoundingBoxRight : Float
499+ , width : Float
500+ }