diff --git a/tests/io.rs b/tests/io.rs new file mode 100644 index 0000000..c186ad0 --- /dev/null +++ b/tests/io.rs @@ -0,0 +1,29 @@ +use squad_quest::{config::Config,quest::{error::{QuestError}, Quest}}; +use std::path::PathBuf; + +const CONFIG_PATH: &str = "tests/io/config.toml"; + +// Note: Quest::delete uses Quest::load underneath, +// and Quest::save can override files, +// so this test covers full quest CRUD +#[test] +fn quest_crud() -> Result<(), QuestError> { + let config = Config::load(CONFIG_PATH.into()); + + let mut quests_path = PathBuf::from(CONFIG_PATH).parent().unwrap().to_owned(); + quests_path.push(config.quests_path); + + let quest = Quest::default(); + + println!("{:?}", quests_path.clone()); + + quest.save(quests_path.clone())?; + + let filename = format!("{}.toml", quest.id); + + let delete_path = quests_path.with_file_name(filename); + + Quest::delete(delete_path)?; + + Ok(()) +} diff --git a/tests/io/config.toml b/tests/io/config.toml new file mode 100644 index 0000000..87858ef --- /dev/null +++ b/tests/io/config.toml @@ -0,0 +1,10 @@ +# Default config + +# Path to quests folder relative to config +quests_path = "quests" + +# Path to accounts folder relative to config +accounts_path = "accounts" + +# Path to map .toml file relative to config +map = "map.toml" diff --git a/tests/io/quests/.placeholder b/tests/io/quests/.placeholder new file mode 100644 index 0000000..aa442f6 --- /dev/null +++ b/tests/io/quests/.placeholder @@ -0,0 +1 @@ +this file exists because git requires directory to have a file in order to commit it