added tool tests

This commit is contained in:
Penwing 2024-01-23 18:15:18 +01:00
parent 59342fa980
commit 600db0ec01
3 changed files with 196 additions and 107 deletions

View file

@ -122,7 +122,7 @@ impl Default for CommandEntry {
} }
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct AppState { pub struct AppState {
pub tabs: Vec<PathBuf>, pub tabs: Vec<PathBuf>,
pub theme: usize, pub theme: usize,
@ -207,3 +207,7 @@ pub fn sort_directories_first(a: &std::fs::DirEntry, b: &std::fs::DirEntry) -> O
a.path().cmp(&b.path()) a.path().cmp(&b.path())
} }
} }
#[cfg(test)]
mod tests;

85
src/tools/tests.rs Normal file
View file

@ -0,0 +1,85 @@
#[cfg(test)]
mod tests {
use crate::tools::*;
#[test]
fn test_tab_number_conversions() {
let tab_num = TabNumber::from_index(3);
assert_eq!(tab_num, TabNumber::Three);
assert_eq!(tab_num.to_index(), 3);
}
#[test]
fn test_default_tab() {
let default_tab = Tab::default();
assert_eq!(default_tab.path, PathBuf::from("untitled"));
assert_eq!(default_tab.code, "// Hello there, Master");
assert_eq!(default_tab.language, "rs");
assert!(!default_tab.saved);
assert_eq!(default_tab.scroll_offset, 0.0);
assert_eq!(default_tab.last_cursor, None);
}
#[test]
fn test_get_tab_name() {
let tab = Tab {
path: PathBuf::from("/path/to/file.rs"),
code: String::from(""),
language: String::from("rs"),
saved: true,
scroll_offset: 0.0,
last_cursor: None,
};
assert_eq!(tab.get_name(), "file.rs");
}
#[test]
fn test_default_command_entry() {
let default_entry = CommandEntry::default();
assert_eq!(
default_entry.env,
env::current_dir()
.expect("Could not find Shell Environnment")
.file_name()
.expect("Could not get Shell Environnment Name")
.to_string_lossy()
.to_string()
);
assert_eq!(default_entry.command, "");
assert_eq!(default_entry.output, "");
assert_eq!(default_entry.error, "");
}
#[test]
fn test_save_and_load_state() {
let tabs = vec![
PathBuf::from("/path/to/file1.rs"),
PathBuf::from("/path/to/file2.py"),
];
let theme = 42;
let original_state = AppState { tabs, theme };
// Save state to a temporary file
let temp_file_path = "/tmp/test_state.json";
save_state(&original_state, temp_file_path).expect("Failed to save state");
// Load state from the temporary file
let loaded_state = load_state(temp_file_path).expect("Failed to load state");
assert_eq!(original_state, loaded_state);
}
#[test]
fn test_run_command() {
let cmd = "echo hello".to_string();
let entry = run_command(cmd);
assert_eq!(entry.command, "echo hello");
assert_eq!(entry.output.trim(), "hello");
assert_eq!(entry.error, "");
}
// Add more tests as needed for other functions
}