|
| 1 | +#[cfg(test)] |
| 2 | +mod snm_install_test { |
| 3 | + mod install_1 { |
| 4 | + use std::env::{self, current_dir, set_current_dir}; |
| 5 | + |
| 6 | + use clap::Parser; |
| 7 | + use cli::{execute_cli, SnmCli}; |
| 8 | + use std::fs; |
| 9 | + |
| 10 | + #[tokio::test] |
| 11 | + async fn test_pnpm_install() { |
| 12 | + env::set_var("SNM_NODE_INSTALL_STRATEGY", "auto"); |
| 13 | + env::set_var("SNM_PACKAGE_MANAGER_INSTALL_STRATEGY", "auto"); |
| 14 | + let c_dir = current_dir().expect("get current dir error"); |
| 15 | + let test_dir = c_dir.join("tests").join("snm_install_pnpm"); |
| 16 | + set_current_dir(&test_dir).expect("set current dir error"); |
| 17 | + |
| 18 | + let cli = SnmCli::parse_from(["snm", "install"]); |
| 19 | + let lock = &test_dir.join("pnpm-lock.yaml"); |
| 20 | + let _ = fs::remove_file(lock); |
| 21 | + |
| 22 | + assert!(!lock.exists()); |
| 23 | + let res = execute_cli::execute_cli(cli).await; |
| 24 | + assert!(res.is_ok()); |
| 25 | + assert!(lock.exists()); |
| 26 | + } |
| 27 | + |
| 28 | + #[tokio::test] |
| 29 | + async fn test_npm_install() { |
| 30 | + env::set_var("SNM_NODE_INSTALL_STRATEGY", "auto"); |
| 31 | + env::set_var("SNM_PACKAGE_MANAGER_INSTALL_STRATEGY", "auto"); |
| 32 | + let c_dir = current_dir().expect("get current dir error"); |
| 33 | + let test_dir = c_dir.join("tests").join("snm_install_npm"); |
| 34 | + set_current_dir(&test_dir).expect("set current dir error"); |
| 35 | + |
| 36 | + let cli = SnmCli::parse_from(["snm", "install"]); |
| 37 | + let lock = &test_dir.join("package-lock.json"); |
| 38 | + let _ = fs::remove_file(lock); |
| 39 | + |
| 40 | + assert!(!lock.exists()); |
| 41 | + let res = execute_cli::execute_cli(cli).await; |
| 42 | + assert!(res.is_ok()); |
| 43 | + assert!(lock.exists()); |
| 44 | + } |
| 45 | + } |
| 46 | +} |
0 commit comments