sourcecred/sharness/test_load_example_github.t
Dandelion Mané 14eee06799
Add a universal snapshot updater (#1159)
As SourceCred has evolved, we've grown more and more snapshot tests that
are not included in Jest. The GitHub plugin has two ad-hoc snapshot
tests, the Git plugin has one, and the sharness test suites have one.

This makes it difficult to keep track of where to update snapshots when
core changes are made. To fix this, I've added a script,
`scripts/update_snapshots.sh`, which updates snapshot tests across the
project.

Test plan: I removed existing snapshots across the codebase, ran the
snapshot tester, and they correctly regenerated.
2019-05-28 18:59:50 +03:00

63 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# Disable these lint rules globally:
# 2034 = unused variable (used by sharness)
# 2016 = parameter expansion in single quotes
# 1004 = backslash-newline in single quotes
# shellcheck disable=SC2034,SC2016,SC1004
:
# If this test is failing, it probably means you need to update snapshots.
# You can do so by setting your SOURCECRED_GITHUB_TOKEN (see README) and then
# running scripts/update_snapshots.sh.
test_description='test snapshot integrity for sourcecred load'
export GIT_CONFIG_NOSYSTEM=1
export GIT_ATTR_NOSYSTEM=1
# shellcheck disable=SC1091
. ./sharness.sh
test_expect_success "environment and Node linking setup" '
toplevel="$(git -C "$(dirname "$0")" rev-parse --show-toplevel)" &&
snapshot_directory="${toplevel}/sharness/__snapshots__/example-github-load" &&
if [ -z "${SOURCECRED_BIN}" ]; then
printf >&2 "warn: missing environment variable SOURCECRED_BIN\n" &&
printf >&2 "warn: using repository bin directory as fallback\n" &&
export SOURCECRED_BIN="${toplevel}/bin"
fi &&
export NODE_PATH="${toplevel}/node_modules${NODE_PATH:+:${NODE_PATH}}" &&
test_set_prereq SETUP
'
if [ -n "${SOURCECRED_GITHUB_TOKEN:-}" ]; then
test_set_prereq HAVE_GITHUB_TOKEN
fi
test_expect_success EXPENSIVE,SETUP,HAVE_GITHUB_TOKEN \
"should load sourcecred/example-github" '
SOURCECRED_DIRECTORY=. node "${SOURCECRED_BIN}/sourcecred.js" \
load sourcecred/example-github &&
rm -rf cache &&
test_set_prereq LOADED_GITHUB
'
if [ -n "${UPDATE_SNAPSHOT}" ]; then
test_set_prereq UPDATE_SNAPSHOT
fi
test_expect_success LOADED_GITHUB,UPDATE_SNAPSHOT \
"should update the snapshot" '
rm -rf "$snapshot_directory" &&
cp -r . "$snapshot_directory"
'
test_expect_success LOADED_GITHUB "should be identical to the snapshot" '
diff -qr . "$snapshot_directory"
'
test_done
# vim: ft=sh