diff --git a/tests/dummy_project/dataform.json b/tests/dummy_project/dataform.json new file mode 100644 index 0000000..534fbfc --- /dev/null +++ b/tests/dummy_project/dataform.json @@ -0,0 +1,6 @@ +{ + "defaultDatabase": "test-project", + "defaultLocation": "US", + "defaultSchema": "dataform", + "assertionSchema": "dataform_assertions" +} diff --git a/tests/dummy_project/definitions/dummy.sqlx b/tests/dummy_project/definitions/dummy.sqlx new file mode 100644 index 0000000..a32026b --- /dev/null +++ b/tests/dummy_project/definitions/dummy.sqlx @@ -0,0 +1,6 @@ +config { + type: "view" +} + +SELECT + 1 AS test diff --git a/tests/dummy_project/package.json b/tests/dummy_project/package.json new file mode 100644 index 0000000..cb27497 --- /dev/null +++ b/tests/dummy_project/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@dataform/core": "3.0.0" + } +} diff --git a/tests/test_hooks.sh b/tests/test_hooks.sh new file mode 100755 index 0000000..db82bd7 --- /dev/null +++ b/tests/test_hooks.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Test script for pre-commit-dataform hooks + +set -e + +REPO_ROOT=$(pwd) + +# Check Node.js version and try to use nvm if available +if [[ $(node -v) == v2[2-5]* ]]; then + echo "Current Node.js version $(node -v) is known to be incompatible with Dataform CLI." + export NVM_DIR="$HOME/.nvm" + if [ -s "$NVM_DIR/nvm.sh" ]; then + echo "Trying to switch to Node.js v20 using nvm..." + source "$NVM_DIR/nvm.sh" + nvm use 20 || nvm install 20 + else + echo "Warning: No nvm found. Tests might fail." + fi +fi + +TEST_DIR=$(mktemp -d) + +echo "Setting up test Dataform project in $TEST_DIR" +cp -r tests/dummy_project/* "$TEST_DIR/" +cd "$TEST_DIR" + +echo "Running dataform_compile.sh..." +if "$REPO_ROOT/hooks/dataform_compile.sh"; then + echo "dataform_compile.sh passed." +else + echo "dataform_compile.sh failed unexpectedly." + exit 1 +fi + +echo "Running dataform_format.sh..." +if "$REPO_ROOT/hooks/dataform_format.sh"; then + echo "dataform_format.sh passed." +else + echo "dataform_format.sh failed unexpectedly." + exit 1 +fi + +echo "All tests passed!" +rm -rf "$TEST_DIR"