diff --git a/bin/test-changed-exercise b/bin/test-changed-exercise index debefeba3..29ccc5340 100755 --- a/bin/test-changed-exercise +++ b/bin/test-changed-exercise @@ -1,26 +1,20 @@ #!/usr/bin/env bash set -eo pipefail -# Determine the base branch of the PR BASE_BRANCH=${GITHUB_BASE_REF:-main} - -# Fetch full history for proper diff git fetch origin "$BASE_BRANCH" +MERGE_BASE=$(git merge-base HEAD origin/$BASE_BRANCH) -# Compute merge base -MERGE_BASE=$(git merge-base HEAD origin/"$BASE_BRANCH") - -# Get changed files relative to merge base changed_files=$(git diff --name-only "$MERGE_BASE" HEAD) -# If any Gradle build file changed, run the full suite and exit -if echo "$changed_files" | grep -qE '\.(gradle|gradlew|bat)$|settings\.gradle'; then +# If any gradle file changed, run the global script +if echo "$changed_files" | grep -q '\.gradle$'; then echo "Gradle build files changed, running full test suite..." - ./bin/test-with-test-runner + ./exercises/gradlew -p exercises test exit 0 fi -# Extract unique exercise directories +# Otherwise, run tests only for changed exercises changed_exercises=$(echo "$changed_files" | \ grep -E '^exercises/(practice|concept)/[^/]+/.+\.java$' | \ cut -d/ -f1-3 | sort -u) @@ -30,12 +24,10 @@ if [ -z "$changed_exercises" ]; then exit 0 fi -# Print exercises echo "Changed exercises detected:" echo "$changed_exercises" echo "----------------------------------------" -# Run tests for dir in $changed_exercises; do slug=$(basename "$dir") diff --git a/exercises/concept/bird-watcher/src/test/java/BirdWatcherTest.java b/exercises/concept/bird-watcher/src/test/java/BirdWatcherTest.java index 5b1746082..7832acddc 100644 --- a/exercises/concept/bird-watcher/src/test/java/BirdWatcherTest.java +++ b/exercises/concept/bird-watcher/src/test/java/BirdWatcherTest.java @@ -5,6 +5,9 @@ import static org.assertj.core.api.Assertions.*; + + + public class BirdWatcherTest { private static final int DAY1 = 0; @@ -46,6 +49,10 @@ public void itIncrementTodaysCount() { assertThat(birdWatcher.getToday()).isEqualTo(TODAY + 1); } + + + + @Test @Tag("task:4") @DisplayName("The hasDayWithoutBirds method returns true when day had no visits") diff --git a/exercises/practice/affine-cipher/.meta/src/reference/java/AffineCipher.java b/exercises/practice/affine-cipher/.meta/src/reference/java/AffineCipher.java index b5e3dde80..fab65689b 100644 --- a/exercises/practice/affine-cipher/.meta/src/reference/java/AffineCipher.java +++ b/exercises/practice/affine-cipher/.meta/src/reference/java/AffineCipher.java @@ -1,6 +1,10 @@ import java.util.ArrayList; import java.util.List; + + + + class AffineCipher { private static final int GROUP_SIZE = 5; private static final int ALPHABET_SIZE = 26; diff --git a/exercises/practice/affine-cipher/src/test/java/AffineCipherTest.java b/exercises/practice/affine-cipher/src/test/java/AffineCipherTest.java index 668631a5c..7f357df79 100644 --- a/exercises/practice/affine-cipher/src/test/java/AffineCipherTest.java +++ b/exercises/practice/affine-cipher/src/test/java/AffineCipherTest.java @@ -9,6 +9,10 @@ public class AffineCipherTest { private AffineCipher affineCipher = new AffineCipher(); + + + + @Test @DisplayName("encode yes") public void testEncodeYes() { diff --git a/exercises/practice/all-your-base/src/test/java/BaseConverterTest.java b/exercises/practice/all-your-base/src/test/java/BaseConverterTest.java index c2ca95a70..3875fa541 100644 --- a/exercises/practice/all-your-base/src/test/java/BaseConverterTest.java +++ b/exercises/practice/all-your-base/src/test/java/BaseConverterTest.java @@ -7,6 +7,10 @@ public class BaseConverterTest { + + + + @Test @DisplayName("single bit one to decimal") public void testSingleBitOneToDecimal() { diff --git a/exercises/practice/allergies/src/test/java/AllergiesTest.java b/exercises/practice/allergies/src/test/java/AllergiesTest.java index cd0ae5cf7..baf82b64d 100644 --- a/exercises/practice/allergies/src/test/java/AllergiesTest.java +++ b/exercises/practice/allergies/src/test/java/AllergiesTest.java @@ -9,6 +9,11 @@ public class AllergiesTest { // Testing for eggs allergy + + + + + @Test @DisplayName("not allergic to anything") public void eggsNotAllergicToAnything() { diff --git a/exercises/settings.gradle b/exercises/settings.gradle index e17e28e81..f6cf3e693 100644 --- a/exercises/settings.gradle +++ b/exercises/settings.gradle @@ -6,6 +6,10 @@ include 'concept:bird-watcher' // include 'concept:blackjack' // deprecated include 'concept:booking-up-for-beauty' include 'concept:calculator-conundrum' + + + + include 'concept:captains-log' include 'concept:cars-assemble' include 'concept:jedliks-toy-car'