Get the randomized soft wrap test passing with no edits

Nathan Sobo and Max Brunsfeld created

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Change summary

zed/src/editor/display_map/wrap_map.rs | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)

Detailed changes

zed/src/editor/display_map/wrap_map.rs 🔗

@@ -531,16 +531,31 @@ mod tests {
             wrapper.sync(tabs_snapshot.clone(), vec![edit]);
 
             let mut expected_text = String::new();
-            for line in tabs_snapshot.text().lines() {
+            let unwrapped_text = tabs_snapshot.text();
+            let mut unwrapped_lines = unwrapped_text.split('\n').peekable();
+            while let Some(line) = unwrapped_lines.next() {
                 let mut prev_ix = 0;
                 for ix in font_system.wrap_line(line, font_id, 14.0, config.wrap_width) {
                     expected_text.push_str(&line[prev_ix..ix]);
                     expected_text.push('\n');
                     prev_ix = ix;
                 }
+                expected_text.push_str(&line[prev_ix..]);
+                if unwrapped_lines.peek().is_some() {
+                    expected_text.push('\n');
+                }
             }
 
-            dbg!(expected_text);
+            let actual_text = wrapper
+                .snapshot
+                .chunks_at(OutputPoint::zero())
+                .collect::<String>();
+
+            assert_eq!(
+                actual_text, expected_text,
+                "unwrapped text is: {:?}",
+                unwrapped_text
+            );
         }
     }
 }