diff --git a/pkg/fish-spec/basic_formatter.fish b/pkg/fish-spec/basic_formatter.fish new file mode 100644 index 0000000000000000000000000000000000000000..0a47e9bd2f5c89e4631f9797d9823ef662fc6f66 --- /dev/null +++ b/pkg/fish-spec/basic_formatter.fish @@ -0,0 +1,44 @@ +function __fish-spec.spec_init -e spec_init -a spec + set -e __current_spec_status +end + +function __fish-spec.spec_finished -e spec_finished -a spec + functions -e $spec + + switch "$__current_spec_status" + case success + emit spec_success + case error + emit spec_error + case '*' + emit spec_no_assertions + end +end + +function __fish-spec.spec_success -e spec_success + echo -n '.' +end + +function __fish-spec.spec_error -e spec_error + echo -n 'F' + set -g __any_spec_failed true +end + +function __fish-spec.spec_no_assertions -e spec_no_assertions + echo -n 'N/A' +end + +function __fish-spec_assertion_success -e assertion_success + set -q __current_spec_status; or set -g __current_spec_status success +end + +function __fish-spec_assertion_error -e assertion_error -a error_message + # Mimics output redirect inside an event handler + if set -q __fish_spec_output + set __fish_spec_output $error_message + else + echo $error_message + end + + set -g __current_spec_status error +end diff --git a/pkg/fish-spec/functions/fish-spec.fish b/pkg/fish-spec/functions/fish-spec.fish index bf5ea0982e96ab30d4d783fecb25862122492d56..f8bdcd401953b10c8c62f92a6e118942ce7ac0ad 100644 --- a/pkg/fish-spec/functions/fish-spec.fish +++ b/pkg/fish-spec/functions/fish-spec.fish @@ -1,4 +1,8 @@ function fish-spec + # Source formatter + set -l fish_spec_dir (dirname (dirname (status -f))) + source $fish_spec_dir/basic_formatter.fish + # Reset internal variables set -e __any_spec_failed @@ -46,48 +50,3 @@ function __fish-spec.run_suite -a suite_name functions -e before_all before_each after_each after_all end - -function __fish-spec.spec_init -e spec_init -a spec - set -e __current_spec_status -end - -function __fish-spec.spec_finished -e spec_finished -a spec - functions -e $spec - - switch "$__current_spec_status" - case success - emit spec_success - case error - emit spec_error - case '*' - emit spec_no_assertions - end -end - -function __fish-spec.spec_success -e spec_success - echo -n '.' -end - -function __fish-spec.spec_error -e spec_error - echo -n 'F' - set -g __any_spec_failed true -end - -function __fish-spec.spec_no_assertions -e spec_no_assertions - echo -n 'N/A' -end - -function __fish-spec_assertion_success -e assertion_success - set -q __current_spec_status; or set -g __current_spec_status success -end - -function __fish-spec_assertion_error -e assertion_error -a error_message - # Mimics output redirect inside an event handler - if set -q __fish_spec_output - set __fish_spec_output $error_message - else - echo $error_message - end - - set -g __current_spec_status error -end