diff --git a/.travis.yml b/.travis.yml index cec1ac2..27836d2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,5 +37,3 @@ install: script: - (cd test && cucumber) - # TODO: Migrate these to Cucumber: - - bash test/remove_sdkman.sh > /dev/null && fish -c "echo 'y' | sdk" > /dev/null && fish -c "sdk version" diff --git a/test/features/installer.feature b/test/features/installer.feature new file mode 100644 index 0000000..aacdefa --- /dev/null +++ b/test/features/installer.feature @@ -0,0 +1,11 @@ +Feature: Install SDKMAN! if necessary + + Scenario: + Given SDKMAN! is not installed + When sdk is called and user answers "n" + Then SDKMAN! is absent + + Scenario: + Given SDKMAN! is not installed + When sdk is called and user answers "y" + Then SDKMAN! is present diff --git a/test/features/step_definitions/installer.rb b/test/features/step_definitions/installer.rb new file mode 100644 index 0000000..2ed427e --- /dev/null +++ b/test/features/step_definitions/installer.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'fileutils' + +Given(/^SDKMAN! is not installed$/) do + FileUtils.rm_rf("#{ENV['HOME']}/.sdkman") +end + +When('sdk is called and user answers {string}') do |answer| + run_fish_command("echo '#{answer}' | sdk version") +end + +Then(/^SDKMAN! is absent$/) do + expect(Dir["#{ENV['HOME']}/.sdkman/*"].count).to eq(0) + response = run_bash_command("sdk version") + expect(response[:status]).to_not eq(0) +end + +Then('SDKMAN! is present') do + expect(Dir["#{ENV['HOME']}/.sdkman/*"].count).to be > 1 + response = run_bash_command("sdk version") + expect(response[:status]).to eq(0) +end diff --git a/test/remove_sdkman.sh b/test/remove_sdkman.sh deleted file mode 100644 index f8674cb..0000000 --- a/test/remove_sdkman.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - - rm -rf "${HOME}/.sdkman" \ -&& sed -i'.bak' -E -e 's/^.*(sdkman|SDKMAN).*$//g' "${HOME}/.bashrc" \ -&& echo 'SDKMAN! uninstalled'