#!/bin/sh set -u . tests/lib.sh assert_file() { if ! diff "$2" "$1"; then printf '\n%s: File content differs.\n' \ "$(ERROR)" >&2 printf '\nexpected: %s\ngot: %s\n\n' "$1" "$2" >&2 print_debug_info exit 1 fi } test_index_generation() { testing 'index generation' N="$LINENO" OUT="$(mkstemp)" ERR="$(mkstemp)" DIR="$(mkdtemp)" ./gistatic -i -o "$DIR" tests/resources/repositories/* 1>"$OUT" 2>"$ERR" STATUS=$? assert_empty_stdout assert_empty_stderr assert_status 0 assert_file tests/resources/assets/style.css "$DIR/style.css" assert_file tests/resources/assets/logo.svg "$DIR/logo.svg" assert_file tests/resources/assets/index.html "$DIR/index.html" test_ok } test_repo_generation() { testing 'repo generation' N="$LINENO" OUT="$(mkstemp)" ERR="$(mkstemp)" DIR="$(mkdtemp)" ./gistatic -o "$DIR" -u https://example.com/ \ tests/resources/repositories/repo-1 1>"$OUT" 2>"$ERR" STATUS=$? assert_empty_stdout assert_empty_stderr assert_status 0 assert_file tests/resources/assets/repo/style.css "$DIR/style.css" assert_file tests/resources/assets/repo/logo.svg "$DIR/logo.svg" assert_file tests/resources/assets/repo/refs.html "$DIR/refs.html" test_ok } test_index_generation test_repo_generation