Browse Source

add bats testing

Christian Winther 1 năm trước cách đây
mục cha
commit
2d05eccb87
4 tập tin đã thay đổi với 97 bổ sung3 xóa
  1. 9 1
      .github/workflows/docker.yml
  2. 10 0
      .gitmodules
  3. 4 2
      docker/shared/root/docker/helpers.sh
  4. 74 0
      tests/bats/helpers.bats

+ 9 - 1
.github/workflows/docker.yml

@@ -43,7 +43,7 @@ jobs:
     name: Shellcheck
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v3
+      - uses: actions/checkout@v4
       - name: Run ShellCheck
         uses: ludeeus/action-shellcheck@master
         env:
@@ -52,6 +52,14 @@ jobs:
           version: v0.9.0
           additional_files: "*.envsh .env .env.docker .env.example .env.testing"
 
+  bats:
+    name: Bats Testing
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Run bats
+        run: docker run -v "$PWD:/var/www" bats/bats:latest /var/www/tests/bats
+
   build:
     runs-on: ubuntu-latest
 

+ 10 - 0
.gitmodules

@@ -0,0 +1,10 @@
+
+[submodule "tests/shell/bats"]
+	path = tests/shell/bats
+	url = https://github.com/bats-core/bats-core.git
+[submodule "tests/shell/test_helper/bats-support"]
+	path = tests/shell/test_helper/bats-support
+	url = https://github.com/bats-core/bats-support.git
+[submodule "tests/shell/test_helper/bats-assert"]
+	path = tests/shell/test_helper/bats-assert
+	url = https://github.com/bats-core/bats-assert.git

+ 4 - 2
docker/shared/root/docker/helpers.sh

@@ -487,6 +487,7 @@ function show-call-stack() {
 }
 
 # @description Helper function see if $1 could be considered truthy
+#   returns [0] if input is truthy, otherwise [1]
 # @arg $1 string The string to evaluate
 # @see as-boolean
 function is-true() {
@@ -496,12 +497,13 @@ function is-true() {
 }
 
 # @description Helper function see if $1 could be considered falsey
+#   returns [0] if input is falsey, otherwise [1]
 # @arg $1 string The string to evaluate
 # @see as-boolean
 function is-false() {
-    as-boolean "${1:-}" || return 0
+    as-boolean "${1:-}" && return 1
 
-    return 1
+    return 0
 }
 
 # @description Helper function see if $1 could be truethy or falsey.

+ 74 - 0
tests/bats/helpers.bats

@@ -0,0 +1,74 @@
+setup() {
+    DIR="$(cd "$(dirname "${BATS_TEST_FILENAME:-}")" >/dev/null 2>&1 && pwd)"
+    ROOT="$(dirname "$(dirname "$DIR")")"
+
+    load "$ROOT/docker/shared/root/docker/helpers.sh"
+}
+
+@test "test [is-true]" {
+    is-true "1"
+    is-true "true"
+    is-true "TrUe"
+}
+
+@test "test [is-false]" {
+    is-false "0"
+    is-false "false"
+    is-false "FaLsE"
+}
+
+@test "test [is-false-expressions-0]" {
+    if is-false "0"; then
+        return 0
+    fi
+
+    return 1
+}
+
+@test "test [is-false-expressions-false]" {
+    if is-false "false"; then
+        return 0
+    fi
+
+    return 1
+}
+
+@test "test [is-false-expressions-FaLse]" {
+    if is-false "FaLse"; then
+        return 0
+    fi
+
+    return 1
+}
+
+@test "test [is-false-expressions-invalid]" {
+    if is-false "invalid"; then
+        return 0
+    fi
+
+    return 1
+}
+
+@test "test [is-true-expressions-1]" {
+    if is-true "1"; then
+        return 0
+    fi
+
+    return 1
+}
+
+@test "test [is-true-expressions-true]" {
+    if is-true "true"; then
+        return 0
+    fi
+
+    return 1
+}
+
+@test "test [is-true-expressions-TrUE]" {
+    if is-true "TrUE"; then
+        return 0
+    fi
+
+    return 1
+}