#!/usr/bin/env bats load test_helper @test "without args shows summary of common commands" { run rbenv-help assert_success assert_line "Usage: rbenv [...]" assert_line "Commands to manage available Ruby versions:" } @test "usage flag" { run rbenv-help --usage assert_success assert_output "Usage: rbenv [...]" } @test "invalid command" { run rbenv-help hello assert_failure "rbenv: no such command \`hello'" } @test "shows help for a specific command" { mkdir -p "${RBENV_TEST_DIR}/bin" cat > "${RBENV_TEST_DIR}/bin/rbenv-hello" < # Summary: Says "hello" to you, from rbenv # This command is useful for saying hello. echo hello SH run rbenv-help hello assert_success assert_output < This command is useful for saying hello. SH } @test "replaces missing extended help with summary text" { mkdir -p "${RBENV_TEST_DIR}/bin" cat > "${RBENV_TEST_DIR}/bin/rbenv-hello" < # Summary: Says "hello" to you, from rbenv echo hello SH run rbenv-help hello assert_success assert_output < Says "hello" to you, from rbenv SH } @test "extracts only usage" { mkdir -p "${RBENV_TEST_DIR}/bin" cat > "${RBENV_TEST_DIR}/bin/rbenv-hello" < # Summary: Says "hello" to you, from rbenv # This extended help won't be shown. echo hello SH run rbenv-help --usage hello assert_success "Usage: rbenv hello " } @test "empty usage section" { mkdir -p "${RBENV_TEST_DIR}/bin" cat > "${RBENV_TEST_DIR}/bin/rbenv-hello" < "${RBENV_TEST_DIR}/bin/rbenv-hello" < # rbenv hi [everybody] # rbenv hola --translate # Summary: Says "hello" to you, from rbenv # Help text. echo hello SH run rbenv-help hello assert_success assert_output < rbenv hi [everybody] rbenv hola --translate Help text. SH } @test "multiline extended help section" { mkdir -p "${RBENV_TEST_DIR}/bin" cat > "${RBENV_TEST_DIR}/bin/rbenv-hello" < # Summary: Says "hello" to you, from rbenv # This is extended help text. # It can contain multiple lines. # # And paragraphs. echo hello SH run rbenv-help hello assert_success assert_output < This is extended help text. It can contain multiple lines. And paragraphs. SH }