#![cfg(feature = "wasm")] use reconcile::wasm::{ cursor::{JsCursorPosition, JsTextWithCursors}, lib::{is_binary, is_file_type_mergable, merge, merge_text, merge_text_with_cursors}, }; use wasm_bindgen_test::*; #[wasm_bindgen_test(unsupported = test)] fn test_merge() { let left = b"hello "; let right = b"world"; let result = merge(b"", left, right); assert_eq!(result, b"hello world"); let left = b"\0binary"; let right = b"other"; let result = merge(b"", left, right); assert_eq!(result, right); } #[wasm_bindgen_test(unsupported = test)] fn test_merge_text() { let left = "hello "; let right = "world"; let result = merge_text("", left, right); assert_eq!(result, "hello world"); } #[wasm_bindgen_test(unsupported = test)] fn test_merge_text_with_cursors() { let result = merge_text_with_cursors( "hi", JsTextWithCursors::new("hi world".to_owned(), vec![]), JsTextWithCursors::new( "hi".to_owned(), vec![JsCursorPosition::new(0, 1), JsCursorPosition::new(1, 2)], ), ); assert_eq!( result, JsTextWithCursors::new( "hi world".to_owned(), vec![JsCursorPosition::new(0, 1), JsCursorPosition::new(1, 2)] ), ); } #[wasm_bindgen_test(unsupported = test)] fn merge_binary() { let left = [0, 1, 2]; let right = [3, 4, 5]; assert_eq!(merge(b"", &left, &right), right); } #[wasm_bindgen_test(unsupported = test)] fn test_is_binary() { assert!(is_binary(&[0, 159, 146, 150])); assert!(is_binary(&[0, 12])); assert!(!is_binary(b"hello")); } #[wasm_bindgen_test(unsupported = test)] fn test_is_binary_empty() { assert!(!is_binary(b"")); } #[wasm_bindgen_test(unsupported = test)] fn test_is_file_type_mergable() { assert!(is_file_type_mergable(".md")); assert!(is_file_type_mergable("hi.md")); assert!(is_file_type_mergable("my/path/to/my/document.md")); assert!(is_file_type_mergable("hi.MD")); assert!(is_file_type_mergable("my/path/to/my/DOCUMENT.MD")); assert!(!is_file_type_mergable(".json")); assert!(!is_file_type_mergable("HELLO.JSON")); assert!(!is_file_type_mergable("my/config.yml")); }