stylex_transform/shared/structures/tests/
get_package_name_and_path_test.rs1#[cfg(test)]
2mod get_package_name_and_path {
3 use std::{env, path::PathBuf};
4
5 use path_clean::PathClean;
6 use rustc_hash::FxHashMap;
7
8 use crate::shared::structures::state_manager::StateManager;
9
10 fn get_fixture_path(test_path: &str) -> PathBuf {
11 env::current_dir()
12 .unwrap()
13 .join("src/shared/structures/tests/fixtures")
14 .join(test_path)
15 .clean()
16 }
17
18 #[test]
19 fn get_package_json_with_name() {
20 let fixture_path = get_fixture_path("package_json_with_name");
21
22 let (package_name, package_path) = StateManager::get_package_name_and_path(
23 fixture_path.to_str().unwrap(),
24 &mut FxHashMap::default(),
25 )
26 .unwrap();
27
28 assert_eq!(package_name.unwrap(), "package_json_with_name");
29 assert_eq!(package_path, fixture_path.to_string_lossy());
30 }
31
32 #[test]
33 fn get_package_json_without_name() {
34 let fixture_path = get_fixture_path("package_json_without_name");
35
36 let (package_name, package_path) = StateManager::get_package_name_and_path(
37 fixture_path.to_str().unwrap(),
38 &mut FxHashMap::default(),
39 )
40 .unwrap();
41
42 assert!(package_name.is_none(), "package_name should be None");
43 assert_eq!(package_path, fixture_path.to_string_lossy());
44 }
45}