#!/bin/bash DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$DIR"/.. || exit source ./_reformat-common.bash setUp() { cd "$DIR"/.. || exit } testProjectRoot001() { dir=$(mktemp -d --tmpdir would-reformat-testProjectRoot001.XXXXXX) cd "$dir" || exit git init >/dev/null 2>&1 echo 'abc123' >random-file pr=$(project_root random-file) assertEquals "$dir" "$pr" } # This won't work (yet) because our only method of determining a # project root is to ask git what it thinks. testProjectRoot002() { dir=$(mktemp -d --tmpdir would-reformat-testProjectRoot001.XXXXXX) cd "$dir" || exit echo 'abc123' >random-file pr=$(project_root random-file) assertEquals "" "$pr" } testResolveSymlink001() { d1=$(mktemp -d --tmpdir targetdir.XXXXX) expected="$d1/target" touch "$expected" d2=$(mktemp -d --tmpdir linkdir.XXXXX) link="$d2"/link ln -s "$d1"/target "$link" resolved=$(resolve_symlink "$link") assertEquals "$expected" "$resolved" } # This test is ugly but there's no obvious way to make it # better without making it entirely tautological. testNoramlizeDirOfFile001() { input="$DIR"/../install.sh expected="$DIR/.." out=$(normalize_dir_of_file "$input") assertEquals "$expected" "$out/tests/.." } testWfRoot() { expected=$(normalize_dir_of_file "$DIR/../install.sh") dir=$(mktemp -d --tmpdir would-reformat-testProjectRoot001.XXXXXX) cd "$dir" || exit git init >/dev/null 2>&1 "$DIR"/../install.sh 2>&2 >/dev/null got=$(wf_root "$(pwd)") assertEquals "$expected" "$got" } # shellcheck disable=SC1091 source shunit2