mirror of
https://github.com/gomods/athens
synced 2026-02-09 04:48:11 +00:00
52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# test_e2e.sh
|
|
# Execute end-to-end (e2e) tests to verify that everything is working right
|
|
# from the end user perpsective
|
|
set -xeuo pipefail
|
|
|
|
REPO_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )/.."
|
|
|
|
GOMOD_CACHE=$(go env GOPATH)/pkg/mod
|
|
export PATH=${REPO_DIR}/bin:${PATH}
|
|
|
|
clearGoModCache () {
|
|
# The sudo is a necessary workaround until go is fixed
|
|
sudo rm -fr ${GOMOD_CACHE}
|
|
}
|
|
|
|
teardown () {
|
|
# Cleanup after our tests
|
|
pkill buffalo || true
|
|
popd 2> /dev/null || true
|
|
}
|
|
trap teardown EXIT
|
|
|
|
# Start the proxy in the background and wait for it to be ready
|
|
cd $REPO_DIR/cmd/proxy
|
|
pkill buffalo || true # cleanup old buffalos
|
|
buffalo dev &
|
|
while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:3000)" != "200" ]]; do sleep 5; done
|
|
|
|
# Clone our test repo
|
|
TMPDIR=$(mktemp -d)
|
|
TEST_SOURCE=${TMPDIR}happy-path
|
|
rm -fr ${TEST_SOURCE} 2> /dev/null || true
|
|
git clone https://github.com/athens-artifacts/happy-path.git ${TEST_SOURCE}
|
|
pushd ${TEST_SOURCE}
|
|
|
|
clearGoModCache
|
|
|
|
# set modules on after running buffalo dev, not sure why
|
|
# issue https://github.com/gomods/athens/issues/412
|
|
export GO111MODULE=on
|
|
# Make sure that our test repo works without the GOPROXY first
|
|
unset GOPROXY
|
|
go run .
|
|
|
|
clearGoModCache
|
|
|
|
# Verify that the test works against the proxy
|
|
export GOPROXY=http://localhost:3000
|
|
go run .
|