feat(test): publish one authorized SaaS command over confirmed MQ

This commit is contained in:
2026-10-04 15:57:41 +08:00
parent 0e9e6411be
commit 4f319a58fa
7 changed files with 256 additions and 6 deletions
+5 -1
View File
@@ -45,12 +45,15 @@ d_pw=$(openssl rand -hex 12)
if ! docker exec -u rabbitmq "$name" rabbitmqctl add_user saas_mock "$saas_pw" >/dev/null 2>&1 ||
! docker exec -u rabbitmq "$name" rabbitmqctl add_user dispatcher_mock "$d_pw" >/dev/null 2>&1 ||
! docker exec -u rabbitmq "$name" rabbitmqctl set_permissions -p / saas_mock '.*' '.*' '.*' >/dev/null 2>&1 ||
! docker exec -u rabbitmq "$name" rabbitmqctl set_permissions -p / dispatcher_mock '^$' '^agent-call\.saas\.v1$' '^agent-call\.d\..*\.(control|task\..*)\.v1$' >/dev/null 2>&1; then
! docker exec -u rabbitmq "$name" rabbitmqctl set_permissions -p / dispatcher_mock '^$' '^agent-call\.saas\.v1$' '^agent-call\.d\..*\.(control|task\..*)\.v1$' >/dev/null 2>&1 ||
! docker exec -u rabbitmq "$name" rabbitmqctl add_vhost saas-mock-go-sip-test >/dev/null 2>&1 ||
! docker exec -u rabbitmq "$name" rabbitmqctl set_permissions -p saas-mock-go-sip-test saas_mock '.*' '.*' '.*' >/dev/null 2>&1; then
echo 'isolated RabbitMQ Mock user/permission setup failed' >&2
exit 1
fi
export RABBITMQ_URL="amqp://dispatcher_mock:${d_pw}@127.0.0.1:${port}/"
export RABBITMQ_PROVISIONER_URL="amqp://saas_mock:${saas_pw}@127.0.0.1:${port}/"
export SAAS_MOCK_TEST_BROKER_URL="amqp://saas_mock:${saas_pw}@127.0.0.1:${port}/saas-mock-go-sip-test"
run_required_test() {
local package=$1 test_name=$2 output
if ! output=$(go test -tags=integration "$package" -run "^${test_name}$" -count=1 -v 2>&1); then
@@ -66,3 +69,4 @@ run_required_test() {
run_required_test ./internal/mq TestBrokerSharedResultQueueAndNoConfigure
run_required_test ./internal/dispatcher TestRuntimeIsolatedControlBacklogExecuteAndSharedResult
run_required_test ./cmd/sip-go-agent TestDispatcherCommandStartsWithIsolatedMQHTTPAndAgent
run_required_test ./deploys/test/saas-mock TestSaaSMockPublishesOneCommandOnProvisionedRabbitMQ