test: app move (basics)

This commit is contained in:
2025-09-01 11:17:11 +02:00
parent 824f314472
commit 9c37b9b748
4 changed files with 78 additions and 10 deletions

View File

@ -6,6 +6,7 @@ import (
"errors"
"net/http"
"os"
"strings"
"time"
contextPkg "coopcloud.tech/abra/pkg/context"
@ -38,18 +39,24 @@ func WithTimeout(timeout int) Opt {
func New(serverName string, opts ...Opt) (*client.Client, error) {
var clientOpts []client.Opt
if serverName != "default" {
context, err := GetContext(serverName)
if err != nil {
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
}
ctx, err := GetContext(serverName)
if err != nil {
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
}
ctxEndpoint, err := contextPkg.GetContextEndpoint(context)
if err != nil {
return nil, err
}
ctxEndpoint, err := contextPkg.GetContextEndpoint(ctx)
if err != nil {
return nil, err
}
var isUnix bool
if strings.Contains(ctxEndpoint, "unix://") {
isUnix = true
}
if serverName != "default" && !isUnix {
conf := &Conf{}
for _, opt := range opts {
opt(conf)
}
@ -93,7 +100,7 @@ func New(serverName string, opts ...Opt) (*client.Client, error) {
}
if info.Swarm.LocalNodeState == "inactive" {
if serverName != "default" {
if serverName != "default" && !isUnix {
return cl, errors.New(i18n.G("swarm mode not enabled on %s?", serverName))
}

View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
setup_file(){
load "$PWD/tests/integration/helpers/common"
_common_setup
_add_server
_add_move_server
_new_app
}
teardown_file(){
_rm_app
_rm_server
_rm_move_server
}
setup(){
load "$PWD/tests/integration/helpers/common"
_common_setup
_ensure_catalogue
}
teardown(){
_undeploy_app
}
@test "validate app argument" {
run $ABRA app move
assert_failure
run $ABRA app move DOESNTEXIST
assert_failure
run $ABRA app move "$TEST_APP_DOMAIN" DOESNTEXIST
assert_failure
}
@test "move app fails if not deployed" {
run $ABRA app move "$TEST_APP_DOMAIN" "$TEST_MOVE_SERVER"
assert_failure
assert_output --partial 'must first be deployed'
}

View File

@ -17,6 +17,7 @@ _common_setup() {
export TEST_APP_NAME="$(basename "${BATS_TEST_FILENAME//./_}")"
export TEST_APP_DOMAIN="$TEST_APP_NAME.$TEST_SERVER"
export TEST_MOVE_SERVER="default2"
export TEST_RECIPE="abra-test-recipe"
_ensure_swarm

View File

@ -10,6 +10,15 @@ _add_server() {
assert_exists "$ABRA_DIR/servers/$TEST_SERVER"
}
_add_move_server() {
run docker context create default2 --docker "host=unix:///var/run/docker.sock"
assert_success
run mkdir -p "$ABRA_DIR/servers/default2"
assert_success
assert_exists "$ABRA_DIR/servers/default2"
}
_rm_server() {
if [[ "$TEST_SERVER" == "default" ]]; then
run rm -rf "$ABRA_DIR/servers/default"
@ -20,6 +29,15 @@ _rm_server() {
assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER"
}
_rm_move_server() {
run docker context rm default2
assert_success
run rm -rf "$ABRA_DIR/servers/default2"
assert_success
assert_not_exists "$ABRA_DIR/servers/default2"
}
_rm_default_server(){
run rm -rf "$ABRA_DIR/servers/default"
assert_success