Browse Source

test: test for watchtower and scaling

pull/8373/head
Rohit T P 7 months ago
parent
commit
c8a0387ca2
  1. 2
      docker-compose/setup-script/tests/expects/install/redis.sh
  2. 31
      docker-compose/setup-script/tests/expects/install/scale.sh
  3. 31
      docker-compose/setup-script/tests/expects/install/watchtower.sh
  4. 6
      docker-compose/setup-script/tests/install/redis.bats
  5. 31
      docker-compose/setup-script/tests/install/scale.bats
  6. 28
      docker-compose/setup-script/tests/install/watchtower.bats

2
docker-compose/setup-script/tests/expects/redis.sh → docker-compose/setup-script/tests/expects/install/redis.sh

@ -4,7 +4,7 @@
set timeout 10 set timeout 10
# Start your main script # Start your main script
spawn bash ../noco.sh spawn bash ../../noco.sh
# Respond to script prompts # Respond to script prompts
expect "Enter the IP address or domain name for the NocoDB instance (default: localhost):" expect "Enter the IP address or domain name for the NocoDB instance (default: localhost):"

31
docker-compose/setup-script/tests/expects/install/scale.sh

@ -0,0 +1,31 @@
#!/usr/bin/expect -f
# Configure timeout for each expect command
set timeout 10
# Start your main script
spawn bash ../../noco.sh
# Respond to script prompts
expect "Enter the IP address or domain name for the NocoDB instance (default: localhost):"
send "\r"
expect "Show Advanced Options*"
send "Y\r"
expect "Choose Community or Enterprise Edition*"
send "\r"
expect "Do you want to enabled Redis for caching*"
send "Y\r"
expect "Do you want to enabled Watchtower for automatic updates*"
send "\r"
expect "How many instances of NocoDB do you want to run*"
send "2\r"
expect "Do you want to start the management menu*"
send "N\r"
expect eof

31
docker-compose/setup-script/tests/expects/install/watchtower.sh

@ -0,0 +1,31 @@
#!/usr/bin/expect -f
# Configure timeout for each expect command
set timeout 10
# Start your main script
spawn bash ../../noco.sh
# Respond to script prompts
expect "Enter the IP address or domain name for the NocoDB instance (default: localhost):"
send "\r"
expect "Show Advanced Options*"
send "Y\r"
expect "Choose Community or Enterprise Edition*"
send "\r"
expect "Do you want to enabled Redis for caching*"
send "\r"
expect "Do you want to enabled Watchtower for automatic updates*"
send "Y\r"
expect "How many instances of NocoDB do you want to run*"
send "\r"
expect "Do you want to start the management menu*"
send "N\r"
expect eof

6
docker-compose/setup-script/tests/redis.bats → docker-compose/setup-script/tests/install/redis.bats

@ -7,16 +7,16 @@ WORKING_DIR="$(pwd)"
setup() { setup() {
cd "${WORKING_DIR}" || exit 1 cd "${WORKING_DIR}" || exit 1
./setup.sh ../setup.sh
} }
teardown() { teardown() {
cd "${WORKING_DIR}" || exit 1 cd "${WORKING_DIR}" || exit 1
./setup.sh ../setup.sh
} }
@test "Check Redis is enabled when specified" { @test "Check Redis is enabled when specified" {
./expects/redis.sh ../expects/install/redis.sh
cd "${NOCO_HOME}" cd "${NOCO_HOME}"

31
docker-compose/setup-script/tests/install/scale.bats

@ -0,0 +1,31 @@
#!/usr/bin/env bats
NOCO_HOME="${HOME}/.nocodb"
export NOCO_HOME
WORKING_DIR="$(pwd)"
setup() {
cd "${WORKING_DIR}" || exit 1
../setup.sh
}
teardown() {
cd "${WORKING_DIR}" || exit 1
../setup.sh
}
@test "Check if two instances of NoCoDB can be run" {
# Mock nproc to return 4
nproc() {
echo 4
}
../expects/install/scale.sh
cd "${NOCO_HOME}"
# Get scale from docker compose ps
scale=$(docker compose ps | grep nocodb | awk '{print $1}')
[ "$scale" -eq 2 ]
}

28
docker-compose/setup-script/tests/install/watchtower.bats

@ -0,0 +1,28 @@
#!/usr/bin/env bats
NOCO_HOME="${HOME}/.nocodb"
export NOCO_HOME
WORKING_DIR="$(pwd)"
setup() {
cd "${WORKING_DIR}" || exit 1
../setup.sh
}
teardown() {
cd "${WORKING_DIR}" || exit 1
../setup.sh
}
@test "Check WatchTower is enabled when specified" {
../expects/install/watchtower.sh
cd "${NOCO_HOME}"
# Check Docker Compose file to verify WatchTower configuration
grep -q 'watchtower' docker-compose.yml
# Verify WatchTower container is running
docker compose ps | grep -q 'watchtower'
}
Loading…
Cancel
Save