Skip to main content

stylex_transform/shared/structures/tests/
get_package_name_and_path_test.rs

1#[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}