diff --git a/src/main/bash/sdkman-init.sh b/src/main/bash/sdkman-init.sh index ff31b7ad..f2f3b5d8 100644 --- a/src/main/bash/sdkman-init.sh +++ b/src/main/bash/sdkman-init.sh @@ -113,6 +113,8 @@ else __sdkman_echo_debug "Overwriting candidates cache with: $SDKMAN_CANDIDATES_CSV" echo "$SDKMAN_CANDIDATES_CSV" > "$SDKMAN_CANDIDATES_CACHE" unset CANDIDATES_URI + else + SDKMAN_CANDIDATES_CSV=$(cat "$SDKMAN_CANDIDATES_CACHE") fi fi diff --git a/src/test/groovy/sdkman/specs/CandidatesCacheBootstrapSpec.groovy b/src/test/groovy/sdkman/specs/CandidatesCacheBootstrapSpec.groovy index 87919567..4f1f3a6c 100644 --- a/src/test/groovy/sdkman/specs/CandidatesCacheBootstrapSpec.groovy +++ b/src/test/groovy/sdkman/specs/CandidatesCacheBootstrapSpec.groovy @@ -35,10 +35,14 @@ class CandidatesCacheBootstrapSpec extends SdkmanEnvSpecification { when: bash.execute("source $bootstrapScript") + bash.execute('echo $SDKMAN_CANDIDATES_CSV') then: candidatesCache.exists() candidatesCache.text.contains("gradle,sbt") + + and: + bash.output.contains "gradle,sbt" } void "should fetch and store candidates in cache if cache is empty"() { @@ -54,10 +58,14 @@ class CandidatesCacheBootstrapSpec extends SdkmanEnvSpecification { when: bash.execute("source $bootstrapScript") + bash.execute('echo $SDKMAN_CANDIDATES_CSV') then: candidatesCache.exists() candidatesCache.text.contains("groovy,scala") + + and: + bash.output.contains("groovy,scala") } void "should fetch candidates and refresh cache if older than a day"() { @@ -76,10 +84,14 @@ class CandidatesCacheBootstrapSpec extends SdkmanEnvSpecification { when: bash.execute("source $bootstrapScript") + bash.execute('echo $SDKMAN_CANDIDATES_CSV') then: candidatesCache.exists() candidatesCache.text.contains('groovy,scala') + + and: + bash.output.contains("groovy,scala") } void "should ignore candidates if api is offline"() { @@ -99,9 +111,13 @@ class CandidatesCacheBootstrapSpec extends SdkmanEnvSpecification { when: bash.execute("source $bootstrapScript") + bash.execute('echo $SDKMAN_CANDIDATES_CSV') then: - candidatesCache.text.contains(candidates.join(',')) + candidatesCache.text.contains('groovy,scala') + + and: + bash.output.contains("groovy,scala") } void "should ignore candidates if api returns garbage"() { @@ -121,9 +137,13 @@ class CandidatesCacheBootstrapSpec extends SdkmanEnvSpecification { when: bash.execute("source $bootstrapScript") + bash.execute('echo $SDKMAN_CANDIDATES_CSV') then: - candidatesCache.text.contains(candidates.join(',')) + candidatesCache.text.contains('groovy,scala') + + and: + bash.output.contains("groovy,scala") } void "should query api if not subscribed to beta channel"() { @@ -144,9 +164,13 @@ class CandidatesCacheBootstrapSpec extends SdkmanEnvSpecification { when: bash.execute("source $bootstrapScript") + bash.execute('echo $SDKMAN_CANDIDATES_CSV') then: candidatesCache.exists() candidatesCache.text.contains('groovy,scala') + + and: + bash.output.contains("groovy,scala") } }