From 00a8280a357fd2ccdcde3f5e030b5fa6e43c7a3a Mon Sep 17 00:00:00 2001 From: David Knaack Date: Thu, 30 Sep 2021 16:11:05 +0200 Subject: [PATCH 1/2] fix(status): Don't show status if all exit codes are 0 --- src/modules/status.rs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/modules/status.rs b/src/modules/status.rs index a00563294f3a..a84ce21e2a6b 100644 --- a/src/modules/status.rs +++ b/src/modules/status.rs @@ -46,9 +46,12 @@ pub fn module<'a>(context: &'a Context) -> Option> { false => PipeStatusStatus::Disabled, }; + // Exit code is zero and pipestatus is all zero or disabled/missing if exit_code == "0" - && (pipestatus_status == PipeStatusStatus::Disabled - || pipestatus_status == PipeStatusStatus::NoPipe) + && (match pipestatus_status { + PipeStatusStatus::Pipe(ps) => ps.iter().all(|s| s == "0"), + _ => true, + }) { return None; } @@ -516,6 +519,26 @@ mod tests { assert_eq!(expected, actual); } + #[test] + fn successful_pipeline_pipestatus_enabled() { + let pipe_exit_code = [0, 0, 0]; + + let main_exit_code = 0; + + let expected = None; + + let actual = ModuleRenderer::new("status") + .config(toml::toml! { + [status] + disabled = false + pipestatus = true + }) + .status(main_exit_code) + .pipestatus(&pipe_exit_code) + .collect(); + assert_eq!(expected, actual); + } + #[test] fn pipeline_disabled() { let exit_values = [[130, 126, 131, 127], [1, 1, 1, 1]]; From ee7d5c24cc6f58fb14aece316e74d5c4336b88d5 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Thu, 30 Sep 2021 16:25:22 +0200 Subject: [PATCH 2/2] fix tests --- src/modules/status.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/status.rs b/src/modules/status.rs index a84ce21e2a6b..f2ca7530d6e9 100644 --- a/src/modules/status.rs +++ b/src/modules/status.rs @@ -415,13 +415,13 @@ mod tests { #[test] fn pipeline_uses_pipestatus_format() { let exit_values = [ - [0, 0, 0, 0], + [0, 1, 0, 0], [0, 1, 2, 3], [130, 126, 131, 127], [1, 1, 1, 1], ]; let exit_values_rendered = [ - "PSF 🟒=🟒 🟒 🟒", + "PSF 🟒=πŸ”΄ 🟒 🟒", "PSF 🟒=πŸ”΄ πŸ”΄ πŸ”΄", "PSF 🧱=🚫 ⚑ πŸ”", "PSF πŸ”΄=πŸ”΄ πŸ”΄ πŸ”΄", @@ -459,13 +459,13 @@ mod tests { #[test] fn pipeline_no_map_symbols() { let exit_values = [ - [0, 0, 0, 0], + [0, 1, 0, 0], [0, 1, 2, 3], [130, 126, 131, 127], [1, 1, 1, 1], ]; let exit_values_rendered = [ - "PSF 🟒=🟒0 🟒0 🟒0", + "PSF 🟒=πŸ”΄1 🟒0 🟒0", "PSF 🟒=πŸ”΄1 πŸ”΄2 πŸ”΄3", "PSF INTπŸ”΄=πŸ”΄126 πŸ”΄1313 πŸ”΄127", "PSF πŸ”΄=πŸ”΄1 πŸ”΄1 πŸ”΄1",