enhanced-magic-string 0.1.0

Rust based magic-string implementation with sourcemap chains support
Documentation
use std::fs;

use enhanced_magic_string::utils::common::get_relative_path;

mod common;

#[test]
fn get_relative_path_case() {
  fixture!("tests/fixtures/get-relative-path/output.txt", |file, _| {
    let expect_result = fs::read_to_string(file).unwrap();

    let from_to_paths = vec![
      (
        "fixtures/bundle/01/input.js",
        "fixtures/bundle/01/modules/a.js",
      ),
      ("output.js.map", "output.js"),
      ("./common/mod.file.js", "./common/test/mod.source.js"),
      ("./common/test/mod.file.js", "./common/mod.source.js"),
      ("a/b/c", "a/b"),
      ("/Users/xxx/enhanced-magic-string/crates/enhanced-magic-string/tests/fixtures/magic-string", "/Users/xxx/enhanced-magic-string/crates/enhanced-magic-string/tests/fixtures/magic-string/basic.js")
    ];

    let mut result = String::from("");
    for (from, to) in from_to_paths.iter() {
      let p = get_relative_path(from, to).unwrap();
      result.push_str(&p);
      result.push(';');
    }

    if cfg!(windows) {
      result = result.replace("\\", "/");
    }

    assert_eq!(result, expect_result);
  });
}