diff --git a/src/Nri/Ui/Highlightable/V2.elm b/src/Nri/Ui/Highlightable/V2.elm index bec24f36..2dc1a2d5 100644 --- a/src/Nri/Ui/Highlightable/V2.elm +++ b/src/Nri/Ui/Highlightable/V2.elm @@ -21,6 +21,7 @@ just a single whitespace. - remove initFragment, splitHighlightableOnWords, splitWords - remove toggle, which is not used - rename groupIndex -> index + - ensure that fromMarkdown indexes the fragments correctly ## Types @@ -330,6 +331,7 @@ fromMarkdown markdownString = ) ( Nothing, [] ) |> Tuple.second + |> List.indexedMap (\i highlightable -> { highlightable | index = i }) {-| -} diff --git a/tests/Spec/Nri/Ui/Highlightable.elm b/tests/Spec/Nri/Ui/Highlightable.elm index e8146236..b5d540ef 100644 --- a/tests/Spec/Nri/Ui/Highlightable.elm +++ b/tests/Spec/Nri/Ui/Highlightable.elm @@ -126,8 +126,16 @@ fromMarkdownSpec = let testFromMarkdown startingString expected = Highlightable.fromMarkdown startingString - |> List.map (\{ text, marked } -> ( text, marked )) - |> Expect.equal expected + |> Expect.all + [ -- the right words are marked + List.map (\{ text, marked } -> ( text, marked )) + >> Expect.equal expected + , -- the indexing is correct + \highlightables -> + Expect.equal + (List.indexedMap (\index _ -> index) highlightables) + (List.map (\{ index } -> index) highlightables) + ] defaultMark = Tool.buildMarker