202 lines
4.7 KiB
Bash
202 lines
4.7 KiB
Bash
#!/usr/bin/env bats
|
|
load bats-extra
|
|
|
|
# local version: 1.6.0.0
|
|
|
|
@test "stating something" {
|
|
#[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'Tom-ay-to, tom-aaaah-to.'
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "shouting" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'WATCH OUT!'
|
|
assert_success
|
|
assert_output "Whoa, chill out!"
|
|
}
|
|
|
|
@test "shouting gibberish" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'FCECDFCAAB'
|
|
assert_success
|
|
assert_output "Whoa, chill out!"
|
|
}
|
|
|
|
@test "asking a question" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'Does this cryogenic chamber make me look fat?'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
|
|
@test "asking a numeric question" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'You are, what, like 15?'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
|
|
@test "asking gibberish" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'fffbbcbeab?'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
|
|
@test "talking forcefully" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh "Hi there!"
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "using acronyms in regular speech" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh "It's OK if you don't want to go work for NASA."
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "forceful question" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh "WHAT'S GOING ON?"
|
|
assert_success
|
|
assert_output "Calm down, I know what I'm doing!"
|
|
}
|
|
|
|
@test "shouting numbers" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh '1, 2, 3 GO!'
|
|
assert_success
|
|
assert_output "Whoa, chill out!"
|
|
}
|
|
|
|
@test "no letters" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh '1, 2, 3'
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "question with no letters" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh '4?'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
|
|
@test "shouting with special characters" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!'
|
|
assert_success
|
|
assert_output "Whoa, chill out!"
|
|
}
|
|
|
|
@test "shouting with no exclamation mark" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'I HATE THE DENTIST'
|
|
assert_success
|
|
assert_output "Whoa, chill out!"
|
|
}
|
|
|
|
@test "statement containing question mark" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'Ending with ? means a question.'
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "non-letters with question" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh ':) ?'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
|
|
@test "prattling on" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'Wait! Hang on. Are you going to be OK?'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
|
|
@test "silence" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh ''
|
|
assert_success
|
|
assert_output "Fine. Be that way!"
|
|
}
|
|
|
|
@test "prolonged silence" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh ' '
|
|
assert_success
|
|
assert_output "Fine. Be that way!"
|
|
}
|
|
|
|
@test "alternate silence" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh $'\t\t\t\t\t\t\t\t\t\t'
|
|
assert_success
|
|
assert_output "Fine. Be that way!"
|
|
}
|
|
|
|
@test "multiple line question" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh $'\nDoes this cryogenic chamber make me look fat?\nNo'
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "starting with whitespace" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh ' hmmmmmmm...'
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "ending with whitespace" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'Okay if like my spacebar quite a bit? '
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|
|
# This test might act differently depending on your platform
|
|
@test "other whitespace" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh $'\n\r \t'
|
|
assert_success
|
|
assert_output "Fine. Be that way!"
|
|
}
|
|
|
|
@test "non-question ending with whitespace" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'This is a statement ending with whitespace '
|
|
assert_success
|
|
assert_output "Whatever."
|
|
}
|
|
|
|
@test "no input is silence" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh
|
|
assert_success
|
|
assert_output "Fine. Be that way!"
|
|
}
|
|
|
|
# bash-specific tests
|
|
@test "yelling a filename expansion" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh '*READ* !'
|
|
assert_success
|
|
assert_output "Whoa, chill out!"
|
|
}
|
|
|
|
@test "asking a filename expansion" {
|
|
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
|
|
run bash bob.sh 'bob???'
|
|
assert_success
|
|
assert_output "Sure."
|
|
}
|