From 886eb75f9fe67b83969624df10bd47193376f94d Mon Sep 17 00:00:00 2001 From: Brian Hicks Date: Thu, 19 Nov 2020 20:17:19 -0600 Subject: [PATCH] add some basic golden tests --- script/run-integration-tests.sh | 17 +++++++++++++ .../golden-results/forbid-html-no-hint.sh.txt | 25 +++++++++++++++++++ .../forbid-html-with-hint.sh.txt | 25 +++++++++++++++++++ tests/integration/forbid-html-no-hint.sh | 8 ++++++ tests/integration/forbid-html-with-hint.sh | 8 ++++++ 5 files changed, 83 insertions(+) create mode 100755 script/run-integration-tests.sh create mode 100644 tests/golden-results/forbid-html-no-hint.sh.txt create mode 100644 tests/golden-results/forbid-html-with-hint.sh.txt create mode 100644 tests/integration/forbid-html-no-hint.sh create mode 100644 tests/integration/forbid-html-with-hint.sh diff --git a/script/run-integration-tests.sh b/script/run-integration-tests.sh new file mode 100755 index 0000000..85d9e59 --- /dev/null +++ b/script/run-integration-tests.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' + +run_test() { + TEST_FILE="${1:-}" + NAME="$(basename "$TEST_FILE")" + + echo "===== $NAME" + env PATH="$(pwd)/target/debug:$PATH" bash -xeou pipefail "$TEST_FILE" > "tests/golden-results/$NAME.txt" +} + +cargo build +find tests/integration -type f -name '*.sh' | while read -r TEST_FILE; do + run_test "$TEST_FILE" + echo +done diff --git a/tests/golden-results/forbid-html-no-hint.sh.txt b/tests/golden-results/forbid-html-no-hint.sh.txt new file mode 100644 index 0000000..a8602c3 --- /dev/null +++ b/tests/golden-results/forbid-html-no-hint.sh.txt @@ -0,0 +1,25 @@ +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html + +If these are too much to handle right now (or you intended to import a forbidden +module), please run me with the `update` command! diff --git a/tests/golden-results/forbid-html-with-hint.sh.txt b/tests/golden-results/forbid-html-with-hint.sh.txt new file mode 100644 index 0000000..be1f191 --- /dev/null +++ b/tests/golden-results/forbid-html-with-hint.sh.txt @@ -0,0 +1,25 @@ +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Article/Body.elm:3:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Article/Feed.elm:9:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Article.elm:20:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Asset.elm:10:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Author.elm:36:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Avatar.elm:4:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Loading.elm:7:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Main.elm:8:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Article/Editor.elm:9:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Article.elm:16:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Blank.elm:3:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Home.elm:12:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Login.elm:8:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/NotFound.elm:4:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Profile.elm:12:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Register.elm:5:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page/Settings.elm:8:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Page.elm:6:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/PaginatedList.elm:3:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Route.elm:5:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Timestamp.elm:3:7:forbidden import Html (use Html.Styled) +/Users/brianhicks/code/brian/elm-forbid-import/vendor/elm-spa-example/src/Username.elm:3:7:forbidden import Html (use Html.Styled) + +If these are too much to handle right now (or you intended to import a forbidden +module), please run me with the `update` command! diff --git a/tests/integration/forbid-html-no-hint.sh b/tests/integration/forbid-html-no-hint.sh new file mode 100644 index 0000000..c04330b --- /dev/null +++ b/tests/integration/forbid-html-no-hint.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +elm-forbid-import add-root vendor/elm-spa-example +elm-forbid-import forbid Html + +if elm-forbid-import check; then + exit 1 # check should fail here! +fi diff --git a/tests/integration/forbid-html-with-hint.sh b/tests/integration/forbid-html-with-hint.sh new file mode 100644 index 0000000..731b09d --- /dev/null +++ b/tests/integration/forbid-html-with-hint.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +elm-forbid-import add-root vendor/elm-spa-example +elm-forbid-import forbid Html --hint 'use Html.Styled' + +if elm-forbid-import check; then + exit 1 # check should fail here! +fi