MCPcopy Create free account
hub / github.com/csskit/csskit / test_insert_before_and_after

Function test_insert_before_and_after

crates/css_parse/src/cursor_overlay_sink.rs:268–291  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

266
267 #[test]
268 fn test_insert_before_and_after() {
269 let source_text = "ab";
270 let bump = Bump::default();
271 let lexer = Lexer::new(&EmptyAtomSet::ATOMS, source_text);
272 let mut parser = Parser::new(&bump, source_text, lexer);
273 let output = parser.parse_entirely::<Vec<'_, ComponentValue>>().output.unwrap();
274
275 let mut overlays = CursorOverlaySet::new(&bump);
276 overlays.push_segment(OverlaySegment::new(
277 Span::new(SourceOffset(0), SourceOffset(0)),
278 snippet_cursors(&bump, "pre"),
279 OverlayKind::InsertBefore,
280 ));
281 overlays.push_segment(OverlaySegment::new(
282 Span::new(SourceOffset(2), SourceOffset(2)),
283 snippet_cursors(&bump, "post"),
284 OverlayKind::InsertAfter,
285 ));
286
287 let mut str = String::new();
288 let mut stream = CursorOverlaySink::new(source_text, &overlays, CursorWriteSink::new(source_text, &mut str));
289 output.to_cursors(&mut stream);
290 assert_eq!(str, "pre ab post");
291 }
292
293 #[test]
294 fn test_multiple_inserts_preserve_order() {

Callers

nothing calls this directly

Calls 4

SourceOffsetClass · 0.85
snippet_cursorsFunction · 0.85
push_segmentMethod · 0.80
to_cursorsMethod · 0.45

Tested by

no test coverage detected