squad-quest/tests/main.rs
2ndbeam 94d771107d test: Initial unit testing
- Test quests vector loading
- Test default quest on empty fields
- Test correct quest
- Fixed config paths handling
2025-11-28 17:00:17 +03:00

40 lines
1.2 KiB
Rust

use squad_quest::{config::Config, quest::Quest};
#[test]
fn load_quests() {
let config = Config::load("./tests/cfg/config.toml".into());
let quests = config.load_quests();
assert_eq!(quests.len(), 2);
}
#[test]
fn empty_quest_is_default() {
// First loaded quest should be 0.toml, which is empty
let config = Config::load("./tests/cfg/config.toml".into());
let mut quests = config.load_quests();
quests.sort_by(|a,b| a.id.cmp(&b.id));
let quest = quests.first().unwrap();
let default = Quest::default();
assert_eq!(*quest, default);
}
#[test]
fn quest_one() {
let config = Config::load("./tests/cfg/config.toml".into());
let quests = config.load_quests();
let quest = quests.iter().find(|q| q.id == 1).unwrap();
let expected = Quest {
id: 1,
difficulty: squad_quest::quest::QuestDifficulty::Easy,
reward: 100,
name: "Example easy quest".to_owned(),
description: "Answer this quest without any attachments or comments".to_owned(),
answer: "Accept the answer if it has no attachments and an empty comment".to_owned()
};
assert_eq!(*quest, expected);
}