|
3 | 3 | use std::{fs, path::Path}; |
4 | 4 |
|
5 | 5 | use foundry_test_utils::forgesoldeer; |
| 6 | + |
6 | 7 | forgesoldeer!(install_dependency, |prj, cmd| { |
7 | 8 | let command = "install"; |
8 | 9 | let dependency = "forge-std~1.8.1"; |
@@ -355,6 +356,60 @@ forgesoldeer!(login, |prj, cmd| { |
355 | 356 | let _ = cmd.arg("soldeer").arg(command).assert_failure(); |
356 | 357 | }); |
357 | 358 |
|
| 359 | +forgesoldeer!(clean, |prj, cmd| { |
| 360 | + let dependency = "forge-std~1.8.1"; |
| 361 | + let foundry_contents = r#"[profile.default] |
| 362 | +src = "src" |
| 363 | +out = "out" |
| 364 | +libs = ["lib", "dependencies"] |
| 365 | +
|
| 366 | +[dependencies] |
| 367 | +"#; |
| 368 | + let foundry_file = prj.root().join("foundry.toml"); |
| 369 | + fs::write(&foundry_file, foundry_contents).unwrap(); |
| 370 | + |
| 371 | + cmd.args(["soldeer", "install", dependency]).assert_success(); |
| 372 | + cmd.forge_fuse(); // reset command |
| 373 | + |
| 374 | + // Making sure the path was created to the dependency and that foundry.toml exists |
| 375 | + // meaning that the dependencies were installed correctly |
| 376 | + let path_dep_forge = |
| 377 | + prj.root().join("dependencies").join("forge-std-1.8.1").join("foundry.toml"); |
| 378 | + assert!(path_dep_forge.exists()); |
| 379 | + |
| 380 | + let command = "clean"; |
| 381 | + cmd.arg("soldeer").args([command]).assert_success(); |
| 382 | + // Dependencies should have been removed from disk |
| 383 | + assert!(!prj.root().join("dependencies").exists()); |
| 384 | +}); |
| 385 | + |
| 386 | +forgesoldeer!(detect_project_root, |prj, cmd| { |
| 387 | + let command = "update"; |
| 388 | + |
| 389 | + let foundry_updates = r#"[profile.default] |
| 390 | +src = "src" |
| 391 | +out = "out" |
| 392 | +libs = ["lib", "dependencies"] |
| 393 | +
|
| 394 | +# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options |
| 395 | +
|
| 396 | +[dependencies] |
| 397 | +forge-std = "1.8.1" |
| 398 | +"#; |
| 399 | + let foundry_file = prj.root().join("foundry.toml"); |
| 400 | + |
| 401 | + fs::write(&foundry_file, foundry_updates).unwrap(); |
| 402 | + |
| 403 | + // run command from sub-directory |
| 404 | + cmd.set_current_dir(prj.root().join("src")); |
| 405 | + cmd.arg("soldeer").arg(command).assert_success(); |
| 406 | + // Making sure the path was created to the dependency and that foundry.toml exists |
| 407 | + // meaning that the dependencies were installed correctly |
| 408 | + let path_dep_forge = |
| 409 | + prj.root().join("dependencies").join("forge-std-1.8.1").join("foundry.toml"); |
| 410 | + assert!(path_dep_forge.exists()); |
| 411 | +}); |
| 412 | + |
358 | 413 | fn read_file_to_string(path: &Path) -> String { |
359 | 414 | let contents: String = fs::read_to_string(path).unwrap_or_default(); |
360 | 415 | contents |
|
0 commit comments