#!/bin/zsh -e

# e2e test including lib installs and test suite

HG_NODE=${HG_NODE:-tip}

echo node = $HG_NODE
SRC_DIR=`pwd`

WORK_DIR=/tmp/rdferry_pretxncommit_$$
mkdir $WORK_DIR

TRAPZERR() {
  rm -r $WORK_DIR
}


# $STAGE_DIR shall have the exact state to be committed.

STAGE_DIR=$WORK_DIR/stage
hg clone -r $HG_NODE $SRC_DIR $STAGE_DIR


# TEST_PROJECT depends on rdferry from STAGE_DIR

TEST_PROJECT_DIR=$WORK_DIR/test_project
mkdir $TEST_PROJECT_DIR
cd $TEST_PROJECT_DIR
pdm config --local venv.in_project True
pdm init --non-interactive
pdm add $STAGE_DIR pytest pytest-asyncio aiohttp
pdm run python -c 'import rdferry; print(f"using {rdferry}")'

# pretend the example code is test project's code
cp -a ../stage/examples .
pdm run pytest examples

rm -r $WORK_DIR
exit 0
