use swc_sourcemap::SourceMapHermes;
#[test]
fn test_react_native_hermes() {
let input: &[_] = include_bytes!("./fixtures/react-native-hermes/output.map");
let sm = SourceMapHermes::from_reader(input).unwrap();
let sm = sm.rewrite(&Default::default()).unwrap();
assert_eq!(
sm.lookup_token(0, 11939).unwrap().to_tuple(),
("module.js", 1, 10, None)
);
assert_eq!(
sm.get_original_function_name(11939).map(|v| &**v),
Some("foo")
);
assert_eq!(
sm.lookup_token(0, 11857).unwrap().to_tuple(),
("input.js", 2, 0, None)
);
assert_eq!(
sm.get_original_function_name(11857).map(|v| &**v),
Some("<global>")
);
assert_eq!(
sm.lookup_token(0, 11947).unwrap().to_tuple(),
("module.js", 1, 4, None)
);
assert_eq!(
sm.get_original_function_name(11947).map(|v| &**v),
Some("foo")
);
}
#[test]
fn test_react_native_metro() {
let input: &[_] = include_bytes!("./fixtures/react-native-metro/output.js.map");
let sm = SourceMapHermes::from_reader(input).unwrap();
let sm = sm.rewrite(&Default::default()).unwrap();
let token = sm.lookup_token(1288, 10).unwrap();
assert_eq!(token.to_tuple(), ("module.js", 1, 10, None));
assert_eq!(sm.get_scope_for_token(token).map(|v| &**v), Some("foo"));
let token = sm.lookup_token(1279, 18).unwrap();
assert_eq!(token.to_tuple(), ("input.js", 2, 0, None));
assert_eq!(
sm.get_scope_for_token(token).map(|v| &**v),
Some("<global>")
);
}