summaryrefslogtreecommitdiffstats
path: root/src/modules/username.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/username.rs')
-rw-r--r--src/modules/username.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/modules/username.rs b/src/modules/username.rs
index 038bbd757..714eec07e 100644
--- a/src/modules/username.rs
+++ b/src/modules/username.rs
@@ -40,6 +40,10 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
return None; // [A]
}
+ if let Some(&alias) = config.aliases.get(&username) {
+ username = alias.to_string();
+ }
+
let parsed = StringFormatter::new(config.format).and_then(|formatter| {
formatter
.map_style(|variable| match variable {
@@ -323,4 +327,40 @@ mod tests {
assert_eq!(expected, actual.as_deref());
}
+
+ #[test]
+ fn test_alias() {
+ let actual = ModuleRenderer::new("username")
+ .env(super::USERNAME_ENV_VAR, "astronaut")
+ .config(toml::toml! {
+ [username]
+ show_always = true
+ aliases = { "astronaut" = "skywalker" }
+
+ style_root = ""
+ style_user = ""
+ })
+ .collect();
+ let expected = Some("skywalker in ");
+
+ assert_eq!(expected, actual.as_deref());
+ }
+
+ #[test]
+ fn test_alias_emoji() {
+ let actual = ModuleRenderer::new("username")
+ .env(super::USERNAME_ENV_VAR, "kaas")
+ .config(toml::toml! {
+ [username]
+ show_always = true
+ aliases = { "a" = "b", "kaas" = "🧀" }
+
+ style_root = ""
+ style_user = ""
+ })
+ .collect();
+ let expected = Some("🧀 in ");
+
+ assert_eq!(expected, actual.as_deref());
+ }
}