test: Initial unit testing
- Test quests vector loading - Test default quest on empty fields - Test correct quest - Fixed config paths handling
This commit is contained in:
parent
a5eac1b64f
commit
94d771107d
7 changed files with 102 additions and 15 deletions
|
|
@ -8,7 +8,7 @@ use serde::{ Serialize, Deserialize };
|
|||
use error::QuestError;
|
||||
|
||||
/// Difficulty of the quest
|
||||
#[derive(Serialize, Deserialize)]
|
||||
#[derive(Serialize, Deserialize, Debug, PartialEq)]
|
||||
pub enum QuestDifficulty {
|
||||
/// Easy quest
|
||||
Easy,
|
||||
|
|
@ -39,33 +39,41 @@ fn default_answer() -> String {
|
|||
}
|
||||
|
||||
/// Quest struct
|
||||
#[derive(Serialize, Deserialize)]
|
||||
#[derive(Serialize, Deserialize, Debug, PartialEq)]
|
||||
#[serde(default)]
|
||||
pub struct Quest {
|
||||
/// Quest identifier
|
||||
#[serde(default)]
|
||||
pub id: u16,
|
||||
|
||||
/// Difficulty of this quest
|
||||
#[serde(default)]
|
||||
pub difficulty: QuestDifficulty,
|
||||
|
||||
/// Reward for the quest
|
||||
#[serde(default)]
|
||||
pub reward: u32,
|
||||
|
||||
/// Visible quest name
|
||||
#[serde(default = "default_name")]
|
||||
pub name: String,
|
||||
|
||||
/// Visible quest description
|
||||
#[serde(default = "default_description")]
|
||||
pub description: String,
|
||||
|
||||
/// Quest answer, available for admins
|
||||
#[serde(default = "default_answer")]
|
||||
pub answer: String,
|
||||
}
|
||||
|
||||
impl Default for Quest {
|
||||
fn default() -> Self {
|
||||
Quest {
|
||||
id: u16::default(),
|
||||
difficulty: QuestDifficulty::default(),
|
||||
reward: u32::default(),
|
||||
name: default_name(),
|
||||
description: default_description(),
|
||||
answer: default_answer()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Quest {
|
||||
/// Parse quest TOML or return error
|
||||
pub fn load(path: PathBuf) -> Result<Self, QuestError> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue