#!/usr/bin/env bash
set -euo pipefail
help() {
echo >&2 " You can build the standalone release with 'yarn release:standalone'"
echo >&2 " Or you can pass in a custom path."
echo >&2 " CODE_SERVER_PATH='/var/tmp/coder/code-server/bin/code-server' yarn test:integration"
}
# Make sure a code-server release works. You can pass in the path otherwise it
# will look for release-standalone in the current directory.
#
# This is to make sure we don't have Node version errors or any other
# compilation-related errors.
main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh
local path="$RELEASE_PATH-standalone/bin/code-server"
if [[ ! ${CODE_SERVER_PATH-} ]]; then
echo "Set CODE_SERVER_PATH to test another build of code-server"
else
path="$CODE_SERVER_PATH"
fi
# WIP jsjoeio
if [[ ! -f "test/integration/test-plugin/out/index.js" ]]; then
echo "Building test plugin"
pushd test/integration/test-plugin
make -s out/index.js
popd
# TODO@jsjoeio get this working like in test-unit.sh
# ln -s "/usr/local/Cellar/code-server/4.7.0/libexec/lib/vscode/out" ./lib/vscode/out
# source ./ci/lib.sh
# Our code imports from `out` in order to work during development but if you
# have only built for production you will have not have this directory. In
# that case symlink `out` to a production build directory.
# if [[ ! -e lib/vscode/out ]]; then
# pushd lib
# local out=(vscode-reh-web-*)
# if [[ -d "${out[0]}" ]]; then
# ln -s "../${out[0]}/out" ./vscode/out
# else
# echo "Could not find lib/vscode/out or lib/vscode-reh-web-*"
# echo "Code must be built before running unit tests"
# # exit 1
# fi
# popd
echo "Running tests with code-server binary: '$path'"
if [[ ! -f $path ]]; then
echo >&2 "No code-server build detected"
echo >&2 "Looked in $path"
help
exit 1
CODE_SERVER_PATH="$path" CS_DISABLE_PLUGINS=true ./test/node_modules/.bin/jest "$@" --coverage=false --testRegex "./test/integration" --testPathIgnorePatterns "./test/integration/fixtures" --testPathIgnorePatterns "./test/integration/test-plugin"
main "$@"