Skip to main content

mk_lib/
defaults.rs

1use crate::schema::Shell;
2
3/// Default value for `shell` field
4///
5/// ```
6/// # use mk_lib::defaults::default_shell;
7/// # use mk_lib::schema::Shell;
8/// let a = default_shell();
9/// if cfg!(windows) {
10///   assert_eq!(a, Shell::String("cmd".to_string()));
11/// } else {
12///   assert_eq!(a, Shell::String("sh".to_string()));
13/// }
14/// ```
15pub fn default_shell() -> Shell {
16  Shell::default()
17}
18
19/// Default value for `verbose` field
20///
21/// ```
22/// # use mk_lib::defaults::default_verbose;
23/// let a = default_verbose();
24/// assert!(a);
25/// ```
26pub fn default_verbose() -> bool {
27  true
28}
29
30/// Default value for `verbose` field
31///
32/// ```
33/// # use mk_lib::defaults::default_ignore_errors;
34/// let a = default_ignore_errors();
35/// assert!(!a);
36/// ```
37pub fn default_ignore_errors() -> bool {
38  false
39}
40
41/// Default value for `use_npm` -> `package_manager` field
42///
43/// ```
44/// # use mk_lib::defaults::default_node_package_manager;
45/// let a = default_node_package_manager();
46/// assert_eq!(a, "npm");
47/// ```
48pub fn default_node_package_manager() -> String {
49  "npm".to_string()
50}
51
52#[cfg(test)]
53mod tests {
54  use super::*;
55
56  #[test]
57  fn test_default_ignore_errors() {
58    let result = default_ignore_errors();
59    assert!(!result);
60  }
61
62  #[test]
63  fn test_default_node_package_manager() {
64    let result = default_node_package_manager();
65    assert_eq!(result, "npm");
66    assert_eq!(result.len(), 3);
67    assert!(result.is_ascii());
68  }
69
70  #[test]
71  fn test_default_shell() {
72    let result = default_shell();
73    let expected = if cfg!(windows) { "cmd" } else { "sh" };
74    assert_eq!(result.cmd(), expected.to_string());
75    assert_eq!(result.args().len(), 1);
76  }
77
78  #[test]
79  fn test_default_verbose() {
80    let result = default_verbose();
81    assert!(result);
82  }
83}