refactor: verify invoice test #332
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration Tests | ||
on: | ||
push: | ||
branches: | ||
- dev | ||
pull_request: | ||
branches: | ||
- dev | ||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
services: | ||
docker: | ||
<<<<<<< HEAD | ||
image: docker:24.0.5 | ||
======= | ||
image: docker:19.03.12 | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
options: --privileged | ||
ports: | ||
- 5432:5432 | ||
- 18443:18443 | ||
- 50002:50002 | ||
- 50001:50001 | ||
- 8000:8000 | ||
- 18080:18080 | ||
volumes: | ||
- /var/run/docker.sock:/var/run/docker.sock | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Set up Docker Compose | ||
run: | | ||
<<<<<<< HEAD | ||
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | ||
sudo chmod +x /usr/local/bin/docker-compose | ||
======= | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
docker-compose -f docker-compose-test.yml up --build -d | ||
<<<<<<< HEAD | ||
- name: Wait for services to be ready | ||
run: | | ||
sleep 80 # Adjust time as necessary for services to initialize | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
======= | ||
======= | ||
>>>>>>> 5259db8 (fix: order for running script for web client) | ||
- name: Run start-test-components.sh for web client tests | ||
run: | | ||
cd clients/tests/web | ||
chmod +x start-test-components.sh | ||
./start-test-components.sh | ||
<<<<<<< HEAD | ||
>>>>>>> 10a2767 (fix: step for script execution for web client) | ||
======= | ||
- name: Wait for services to be ready | ||
run: | | ||
sleep 80 # Adjust time as necessary for services to initialize | ||
>>>>>>> 5259db8 (fix: order for running script for web client) | ||
- name: Verify Bitcoin daemon Service and create wallet | ||
run: | | ||
container_id=$(docker ps -qf "name=mercurylayer-bitcoind-1") | ||
======= | ||
- name: Verify Bitcoin daemon Service with Curl | ||
run: | | ||
container_id=$(docker ps -qf "name=mercurylayer_bitcoind_1") | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
echo "Container ID: $container_id" | ||
docker logs $container_id | ||
wallet_name="new_wallet" | ||
docker exec $container_id bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass createwallet $wallet_name | ||
address=$(docker exec $container_id bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass getnewaddress $wallet_name) | ||
echo "New Wallet Address: $address" | ||
docker exec $container_id bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass generatetoaddress 101 "$address" | ||
docker exec $container_id bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass sendtoaddress bcrt1pcngfxjdkf4r2h26k52dh5nunxg8m68uf4lkfhmfjvjj6agfkm5jqmftw4e 0.0001 | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
======= | ||
- name: Create wallet for esplora | ||
run: | | ||
container_id=$(docker ps -qf "name=esplora-container") | ||
echo "Container ID: $container_id" | ||
docker logs $container_id | ||
wallet_name="esplora_wallet" | ||
docker exec $container_id cli createwallet $wallet_name | ||
<<<<<<< HEAD | ||
>>>>>>> 296e370 (feat: add wallet creation for esplora) | ||
======= | ||
address=$(docker exec $container_id cli getnewaddress $wallet_name) | ||
echo "New Wallet Address: $address" | ||
docker exec $container_id cli generatetoaddress 101 "$address" | ||
docker exec $container_id cli sendtoaddress bcrt1pcngfxjdkf4r2h26k52dh5nunxg8m68uf4lkfhmfjvjj6agfkm5jqmftw4e 0.0001 | ||
>>>>>>> a40f257 (fix: add step to generate block on esplora) | ||
- name: Wait for services to be ready | ||
run: | | ||
sleep 60 # Wait for lnd to sync with latest block | ||
- name: Verify LND nodes and create a channel between them | ||
run: | | ||
container_id_alice=$(docker ps -qf "name=mercurylayer-alice-1") | ||
echo "Container ID: $container_id_alice" | ||
container_id_bob=$(docker ps -qf "name=mercurylayer-bob-1") | ||
echo "Container ID: $container_id_bob" | ||
docker logs $container_id_alice | ||
docker logs $container_id_bob | ||
identity_pubkey_bob=$(docker exec $container_id_bob lncli -n regtest getinfo | jq -r '.identity_pubkey') | ||
echo "Pubkey: $identity_pubkey_bob" | ||
docker exec $container_id_alice lncli -n regtest connect $identity_pubkey_bob@bob:9735 | ||
docker exec $container_id_alice lncli -n regtest listpeers | ||
address=$(docker exec $container_id_bob lncli -n regtest newaddress p2wkh | jq -r '.address') | ||
container_id_bitcoind=$(docker ps -qf "name=mercurylayer-bitcoind-1") | ||
docker exec $container_id_bitcoind bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass sendtoaddress $address 0.5 | ||
docker exec $(docker ps -qf "name=mercurylayer-bitcoind-1") bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass -generate 6 | ||
identity_pubkey_alice=$(docker exec $container_id_alice lncli -n regtest getinfo | jq -r '.identity_pubkey') | ||
docker exec $container_id_bob lncli -n regtest openchannel $identity_pubkey_alice 100000 | ||
docker exec $(docker ps -qf "name=mercurylayer-bitcoind-1") bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass -generate 5 | ||
docker logs $container_id_alice | ||
docker logs $container_id_bob | ||
- name: Verify ElectrumX Service with Curl | ||
run: | | ||
container_id=$(docker ps -qf "name=mercurylayer-electrs-1") | ||
======= | ||
- name: Verify ElectrumX Service with Curl | ||
run: | | ||
container_id=$(docker ps -qf "name=mercurylayer_electrs_1") | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
echo "Container ID: $container_id" | ||
docker logs $container_id | ||
- name: Verify Enclave Service with Curl | ||
run: | | ||
<<<<<<< HEAD | ||
container_id=$(docker ps -qf "name=mercurylayer-enclave-sgx-1") | ||
======= | ||
container_id=$(docker ps -qf "name=mercurylayer_enclave-sgx_1") | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
echo "Container ID: $container_id" | ||
docker logs $container_id | ||
- name: Verify Mercury Service with Curl | ||
run: | | ||
<<<<<<< HEAD | ||
container_id=$(docker ps -qf "name=mercurylayer-mercury-1") | ||
======= | ||
container_id=$(docker ps -qf "name=mercurylayer_mercury_1") | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
echo "Container ID: $container_id" | ||
docker logs $container_id | ||
docker exec $container_id \ | ||
curl http://0.0.0.0:8000/info/config | ||
- name: Get Public Key | ||
run: | | ||
docker exec $(docker ps -qf "name=enclave") \ | ||
curl -X POST http://0.0.0.0:18080/get_public_key \ | ||
-H "Content-Type: application/json" \ | ||
-d '{"statechain_id":"550e8400e29b41d4a716446655440000"}' | ||
docker logs $(docker ps -qf "name=enclave") | ||
- name: Verify Node Service with Curl | ||
run: | | ||
curl -X POST http://0.0.0.0:3000/deposit_amount \ | ||
-H 'Content-Type: application/json' \ | ||
-d '{"address":"bcrt1pkygl356c6fvk6ptx72c64hrjkhcxecj4hjzfzc430svzczuv6m0s42lvwx","amount":1000}' | ||
- name: Verify Esplora Service with Curl | ||
run: | | ||
curl http://0.0.0.0:8094/regtest/api/blocks/tip/height | ||
docker logs $(docker ps -qf "name=esplora-container") | ||
- name: Check connectivity between containers | ||
run: | | ||
# Get container IDs | ||
<<<<<<< HEAD | ||
enclave_container=$(docker ps -qf "name=mercurylayer-enclave-sgx-1") | ||
mercury_container=$(docker ps -qf "name=mercurylayer-mercury-1") | ||
# Check if mercurylayer-mercury-1 can reach mercurylayer-enclave-sgx-1 | ||
docker exec $mercury_container curl -v http://mercurylayer-enclave-sgx-1:18080/get_public_key \ | ||
======= | ||
enclave_container=$(docker ps -qf "name=mercurylayer_enclave-sgx_1") | ||
mercury_container=$(docker ps -qf "name=mercurylayer_mercury_1") | ||
# Check if mercurylayer_mercury_1 can reach mercurylayer_enclave-sgx_1 | ||
docker exec $mercury_container curl -v http://mercurylayer_enclave-sgx_1:18080/get_public_key \ | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
-H "Content-Type: application/json" \ | ||
-d '{"statechain_id":"550e8400e29b41d4a716446655440000"}' | ||
# Alternatively, using IP address if service name resolution fails | ||
enclave_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $enclave_container) | ||
docker exec $mercury_container curl -v http://$enclave_ip:18080/get_public_key \ | ||
-H "Content-Type: application/json" \ | ||
-d '{"statechain_id":"550e8400e29b41d4a716446655440000"}' | ||
<<<<<<< HEAD | ||
docker inspect mercurylayer-mercury-1 | ||
======= | ||
docker inspect mercurylayer_mercury_1 | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
- name: Set up Node.js | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: '20.12.2' | ||
- name: Install Node.js dependencies for client | ||
run: | | ||
cd clients/apps/nodejs | ||
npm install | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
npm install mocha -g | ||
======= | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
======= | ||
======= | ||
npm install mocha -g | ||
>>>>>>> 51a9a0e (feat: setup esplora for actions) | ||
- name: Install Node.js dependencies for web client | ||
run: | | ||
cd clients/tests/web | ||
npm install | ||
npx playwright install | ||
npx playwright install-deps | ||
>>>>>>> 90efed7 (feat: setup web client tests on actions) | ||
- name: Install Node.js dependencies for lib | ||
run: | | ||
cd clients/libs/nodejs | ||
npm install | ||
- name: Install Node.js dependencies for web | ||
run: | | ||
cd clients/libs/web | ||
npm install | ||
- name: Run web client Tests | ||
run: | | ||
cd clients/tests/web | ||
sudo chmod -R 755 ./data_bitcoin_regtest | ||
npx vitest --browser.name=chromium --browser.headless | ||
- name: Run Client-Side Tests | ||
run: | | ||
cd clients/apps/nodejs | ||
node test_basic_workflow2.js | ||
node test_atomic_swap.js | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
mocha ./test/tb04-simple-lightning-latch.mjs --exit | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
<<<<<<< HEAD | ||
======= | ||
>>>>>>> 1386b8b (Release 0.1.0 (#79)) | ||
======= | ||
======= | ||
======= | ||
>>>>>>> 272dda7 (fix: setup script for web client tests) | ||
- name: Run start-test-components.sh for web client tests | ||
run: | | ||
cd clients/tests/web | ||
chmod +x start-test-components.sh | ||
./start-test-components.sh | ||
<<<<<<< HEAD | ||
>>>>>>> 51a9a0e (feat: setup esplora for actions) | ||
======= | ||
>>>>>>> 84930c6 (fix: esplora and node server for web client) | ||
======= | ||
>>>>>>> 272dda7 (fix: setup script for web client tests) | ||
======= | ||
>>>>>>> 10a2767 (fix: step for script execution for web client) | ||
======= | ||
>>>>>>> 8ccf218 (fix: payment hash in invoice generation) | ||
- name: Run web client Tests | ||
run: | | ||
cd clients/tests/web | ||
sudo chmod -R 755 ./data_bitcoin_regtest | ||
<<<<<<< HEAD | ||
npx vitest --browser.name=chromium --browser.headless | ||
>>>>>>> 90efed7 (feat: setup web client tests on actions) | ||
======= | ||
>>>>>>> df3af2e (fix: web client tests order) | ||
======= | ||
npx vitest --browser.name=chromium --browser.headless | ||
>>>>>>> 8ccf218 (fix: payment hash in invoice generation) | ||
======= | ||
mocha ./test/tb04-simple-lightning-latch.mjs --exit | ||
>>>>>>> 2b82e6b (fix: web client tests running order) | ||
- name: Tear Down | ||
run: | | ||
docker-compose -f docker-compose-test.yml down |