added more add mod integration tests

This commit is contained in:
2026-03-16 23:14:54 +01:00
parent 6c634824a8
commit 87e862c601
10 changed files with 123 additions and 6 deletions

View File

@@ -14,10 +14,12 @@ fn load_root() -> RootConfig {
}
#[test]
fn add_simple_mod() -> Result<(), Box<dyn Error>> {
fn add_plain() -> Result<(), Box<dyn Error>> {
let root_config = load_root();
let mut instance = root_config.load_instance_by_id("instance_minimal")?;
let mod_to_install = root_config.mod_by_id("add_test_1").expect("Mod not found");
let mod_to_install = root_config
.mod_by_id("add_test_plain")
.expect("Mod not found");
let files_to_add = files_to_install_mod(&root_config, &instance, &mod_to_install)?;
insert_mod_to_instance(&mut instance, &mod_to_install, &files_to_add, 0)?;
@@ -28,7 +30,7 @@ fn add_simple_mod() -> Result<(), Box<dyn Error>> {
let the_mod = installed_mods.first().expect("Asserted before");
assert_eq!(the_mod.mod_id(), "add_test_1");
assert_eq!(the_mod.mod_id(), "add_test_plain");
assert_eq!(the_mod.priority(), 0);
let expected_files: HashSet<_> = [Link::new("plugin.esp", "Data/plugin.esp")]
@@ -43,3 +45,100 @@ fn add_simple_mod() -> Result<(), Box<dyn Error>> {
Ok(())
}
#[test]
fn add_nested() -> Result<(), Box<dyn Error>> {
let root_config = load_root();
let mut instance = root_config.load_instance_by_id("instance_minimal")?;
let mod_to_install = root_config
.mod_by_id("add_test_nested")
.expect("Mod not found");
let files_to_add = files_to_install_mod(&root_config, &instance, &mod_to_install)?;
insert_mod_to_instance(&mut instance, &mod_to_install, &files_to_add, 0)?;
let installed_mods = instance.mods();
assert_eq!(installed_mods.len(), 1);
let the_mod = installed_mods.first().expect("Asserted before");
assert_eq!(the_mod.mod_id(), "add_test_nested");
assert_eq!(the_mod.priority(), 0);
let expected_files: HashSet<_> = [Link::new("Data/plugin.esp", "Data/plugin.esp")]
.into_iter()
.collect();
assert_eq!(
*the_mod.files(),
expected_files,
"Installed files missmatch"
);
Ok(())
}
#[test]
fn add_root() -> Result<(), Box<dyn Error>> {
let root_config = load_root();
let mut instance = root_config.load_instance_by_id("instance_minimal")?;
let mod_to_install = root_config
.mod_by_id("add_test_root")
.expect("Mod not found");
let files_to_add = files_to_install_mod(&root_config, &instance, &mod_to_install)?;
insert_mod_to_instance(&mut instance, &mod_to_install, &files_to_add, 0)?;
let installed_mods = instance.mods();
assert_eq!(installed_mods.len(), 1, "No mod was added");
let the_mod = installed_mods.first().expect("Asserted before");
assert_eq!(the_mod.mod_id(), "add_test_root");
assert_eq!(the_mod.priority(), 0);
let expected_files: HashSet<_> = [Link::new("skse.exe", "skse.exe")].into_iter().collect();
assert_eq!(
*the_mod.files(),
expected_files,
"Installed files missmatch"
);
Ok(())
}
#[test]
fn add_filter() -> Result<(), Box<dyn Error>> {
let root_config = load_root();
let mut instance = root_config.load_instance_by_id("instance_minimal")?;
let mod_to_install = root_config
.mod_by_id("add_test_filter")
.expect("Mod not found");
let files_to_add = files_to_install_mod(&root_config, &instance, &mod_to_install)?;
insert_mod_to_instance(&mut instance, &mod_to_install, &files_to_add, 0)?;
let installed_mods = instance.mods();
assert_eq!(installed_mods.len(), 1, "No mod was added");
let the_mod = installed_mods.first().expect("Asserted before");
assert_eq!(the_mod.mod_id(), "add_test_filter");
assert_eq!(the_mod.priority(), 0);
let expected_files: HashSet<_> = [Link::new("plugin.esp", "plugin.esp")]
.into_iter()
.collect();
assert_eq!(
*the_mod.files(),
expected_files,
"Installed files missmatch"
);
Ok(())
}

View File

@@ -1 +0,0 @@
plugin.esl-add_test_1

View File

@@ -0,0 +1 @@
image.jpg

View File

@@ -0,0 +1 @@
plugin.esp

View File

@@ -0,0 +1 @@
readme.txt

View File

@@ -0,0 +1 @@
extra.esp

View File

@@ -0,0 +1 @@
plugin.esp-add_test_2

View File

@@ -0,0 +1 @@
plugin.esp-add_test_1

View File

@@ -0,0 +1 @@
skse.exe

View File

@@ -29,5 +29,17 @@ path = "mod2"
[mods.mod3]
path = "mod3"
[mods.add_test_1]
path = "add_test_1"
[mods.add_test_plain]
path = "add_test_plain"
[mods.add_test_nested]
path = "add_test_nested"
[mods.add_test_root]
path = "add_test_root"
root_mod = true
[mods.add_test_filter]
path = "add_test_filter"
ignore = [ "*.txt", "image.jpg", "sub/*" ]
root_mod = true