From 7e97c4c1c19b30dbf6a85baa659c7cd538e5a10a Mon Sep 17 00:00:00 2001 From: Raphael Reitzig <4246780+reitzig@users.noreply.github.com> Date: Tue, 26 May 2020 05:07:24 +0200 Subject: [PATCH] Migrate installer test to Cucumber. --- .travis.yml | 2 -- test/features/installer.feature | 11 ++++++++++ test/features/step_definitions/installer.rb | 23 +++++++++++++++++++++ test/remove_sdkman.sh | 5 ----- 4 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 test/features/installer.feature create mode 100644 test/features/step_definitions/installer.rb delete mode 100644 test/remove_sdkman.sh 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'