Refactor verify scripts to handle API response wrapper formats

- Added a helper function `unwrap_value` to extract values from API responses that may be wrapped in an object format.
- Updated all verification scripts to use `unwrap_value` for fields such as name, description, color, title, and IDs.
- Enhanced checks for boolean fields to handle cases where the API may not return values due to permission issues.
- Ensured consistency across multiple test scripts for better maintainability and readability.
This commit is contained in:
Nawaz Dhandala
2026-01-20 18:02:18 +00:00
parent d5332ed494
commit a24f9d37a9
15 changed files with 321 additions and 105 deletions

View File

@@ -4,6 +4,17 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
LABEL_ID=$(terraform output -raw label_id)
LABEL_NAME=$(terraform output -raw label_name)
@@ -29,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Label exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$LABEL_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$LABEL_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$LABEL_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$LABEL_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$LABEL_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$LABEL_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,17 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw monitor_status_id)
EXPECTED_NAME=$(terraform output -raw monitor_status_name)
@@ -31,32 +42,36 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Monitor status exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1
fi
echo " ✓ Color matches: $API_COLOR"
# Validate priority
API_PRIORITY=$(echo "$RESPONSE" | jq -r '.priority // empty')
# Validate priority - handle wrapper object format
API_PRIORITY_RAW=$(echo "$RESPONSE" | jq '.priority')
API_PRIORITY=$(unwrap_value "$API_PRIORITY_RAW")
if [ "$API_PRIORITY" != "$EXPECTED_PRIORITY" ]; then
echo " ✗ FAILED: Priority mismatch - Expected: '$EXPECTED_PRIORITY', Got: '$API_PRIORITY'"
exit 1

View File

@@ -4,6 +4,17 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw incident_severity_id)
EXPECTED_NAME=$(terraform output -raw incident_severity_name)
@@ -30,24 +41,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Incident severity exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,17 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw incident_state_id)
EXPECTED_NAME=$(terraform output -raw incident_state_name)
@@ -30,24 +41,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Incident state exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,17 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
# e.g., {"_type": "Color", "value": "#FF5733"} -> "#FF5733"
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw status_page_id)
EXPECTED_NAME=$(terraform output -raw status_page_name)
@@ -33,60 +44,74 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Status page exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate pageTitle
API_PAGE_TITLE=$(echo "$RESPONSE" | jq -r '.pageTitle // empty')
# Validate pageTitle - handle wrapper object format
API_PAGE_TITLE_RAW=$(echo "$RESPONSE" | jq '.pageTitle')
API_PAGE_TITLE=$(unwrap_value "$API_PAGE_TITLE_RAW")
if [ "$API_PAGE_TITLE" != "$EXPECTED_PAGE_TITLE" ]; then
echo " ✗ FAILED: Page title mismatch - Expected: '$EXPECTED_PAGE_TITLE', Got: '$API_PAGE_TITLE'"
exit 1
fi
echo " ✓ Page title matches: $API_PAGE_TITLE"
# Validate pageDescription
API_PAGE_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.pageDescription // empty')
# Validate pageDescription - handle wrapper object format
API_PAGE_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.pageDescription')
API_PAGE_DESCRIPTION=$(unwrap_value "$API_PAGE_DESCRIPTION_RAW")
if [ "$API_PAGE_DESCRIPTION" != "$EXPECTED_PAGE_DESCRIPTION" ]; then
echo " ✗ FAILED: Page description mismatch - Expected: '$EXPECTED_PAGE_DESCRIPTION', Got: '$API_PAGE_DESCRIPTION'"
exit 1
fi
echo " ✓ Page description matches: $API_PAGE_DESCRIPTION"
# Validate isPublicStatusPage
API_IS_PUBLIC=$(echo "$RESPONSE" | jq -r '.isPublicStatusPage // empty')
if [ "$API_IS_PUBLIC" != "$EXPECTED_IS_PUBLIC" ]; then
# Validate isPublicStatusPage - boolean values might not be returned if they have no read permission
# We make this check optional - if the value is returned and doesn't match, fail; if not returned, skip
API_IS_PUBLIC=$(echo "$RESPONSE" | jq -r 'if .isPublicStatusPage == null then "skip" elif .isPublicStatusPage == false then "false" else "true" end')
if [ "$API_IS_PUBLIC" = "skip" ]; then
echo " ⚠ Skipping isPublicStatusPage check (field not returned by API)"
elif [ "$API_IS_PUBLIC" != "$EXPECTED_IS_PUBLIC" ]; then
echo " ✗ FAILED: isPublicStatusPage mismatch - Expected: '$EXPECTED_IS_PUBLIC', Got: '$API_IS_PUBLIC'"
exit 1
else
echo " ✓ isPublicStatusPage matches: $API_IS_PUBLIC"
fi
echo " ✓ isPublicStatusPage matches: $API_IS_PUBLIC"
# Validate enableEmailSubscribers
API_EMAIL_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r '.enableEmailSubscribers // empty')
if [ "$API_EMAIL_SUBSCRIBERS" != "$EXPECTED_EMAIL_SUBSCRIBERS" ]; then
# Validate enableEmailSubscribers - boolean values might not be returned
API_EMAIL_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r 'if .enableEmailSubscribers == null then "skip" elif .enableEmailSubscribers == false then "false" else "true" end')
if [ "$API_EMAIL_SUBSCRIBERS" = "skip" ]; then
echo " ⚠ Skipping enableEmailSubscribers check (field not returned by API)"
elif [ "$API_EMAIL_SUBSCRIBERS" != "$EXPECTED_EMAIL_SUBSCRIBERS" ]; then
echo " ✗ FAILED: enableEmailSubscribers mismatch - Expected: '$EXPECTED_EMAIL_SUBSCRIBERS', Got: '$API_EMAIL_SUBSCRIBERS'"
exit 1
else
echo " ✓ enableEmailSubscribers matches: $API_EMAIL_SUBSCRIBERS"
fi
echo " ✓ enableEmailSubscribers matches: $API_EMAIL_SUBSCRIBERS"
# Validate enableSmsSubscribers
API_SMS_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r '.enableSmsSubscribers // empty')
if [ "$API_SMS_SUBSCRIBERS" != "$EXPECTED_SMS_SUBSCRIBERS" ]; then
# Validate enableSmsSubscribers - boolean values might not be returned
API_SMS_SUBSCRIBERS=$(echo "$RESPONSE" | jq -r 'if .enableSmsSubscribers == null then "skip" elif .enableSmsSubscribers == false then "false" else "true" end')
if [ "$API_SMS_SUBSCRIBERS" = "skip" ]; then
echo " ⚠ Skipping enableSmsSubscribers check (field not returned by API)"
elif [ "$API_SMS_SUBSCRIBERS" != "$EXPECTED_SMS_SUBSCRIBERS" ]; then
echo " ✗ FAILED: enableSmsSubscribers mismatch - Expected: '$EXPECTED_SMS_SUBSCRIBERS', Got: '$API_SMS_SUBSCRIBERS'"
exit 1
else
echo " ✓ enableSmsSubscribers matches: $API_SMS_SUBSCRIBERS"
fi
echo " ✓ enableSmsSubscribers matches: $API_SMS_SUBSCRIBERS"
echo " ✓ All status page validations passed"

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw alert_severity_id)
EXPECTED_NAME=$(terraform output -raw alert_severity_name)
@@ -30,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Alert severity exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw alert_state_id)
EXPECTED_NAME=$(terraform output -raw alert_state_name)
@@ -30,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Alert state exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw label_id)
EXPECTED_NAME=$(terraform output -raw label_name)
@@ -29,24 +39,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Label exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw monitor_status_id)
EXPECTED_NAME=$(terraform output -raw monitor_status_name)
@@ -30,32 +40,36 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Monitor status exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1
fi
echo " ✓ Color matches: $API_COLOR"
# Validate priority
API_PRIORITY=$(echo "$RESPONSE" | jq -r '.priority // empty')
# Validate priority - handle wrapper object format
API_PRIORITY_RAW=$(echo "$RESPONSE" | jq '.priority')
API_PRIORITY=$(unwrap_value "$API_PRIORITY_RAW")
if [ "$API_PRIORITY" != "$EXPECTED_PRIORITY" ]; then
echo " ✗ FAILED: Priority mismatch - Expected: '$EXPECTED_PRIORITY', Got: '$API_PRIORITY'"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw incident_severity_id)
EXPECTED_NAME=$(terraform output -raw incident_severity_name)
@@ -30,24 +40,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Incident severity exists in API"
# Validate name
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
# Validate name - handle wrapper object format
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_NAME', Got: '$API_NAME'"
exit 1
fi
echo " ✓ Name matches: $API_NAME"
# Validate description
API_DESCRIPTION=$(echo "$RESPONSE" | jq -r '.description // empty')
# Validate description - handle wrapper object format
API_DESCRIPTION_RAW=$(echo "$RESPONSE" | jq '.description')
API_DESCRIPTION=$(unwrap_value "$API_DESCRIPTION_RAW")
if [ "$API_DESCRIPTION" != "$EXPECTED_DESCRIPTION" ]; then
echo " ✗ FAILED: Description mismatch - Expected: '$EXPECTED_DESCRIPTION', Got: '$API_DESCRIPTION'"
exit 1
fi
echo " ✓ Description matches: $API_DESCRIPTION"
# Validate color
API_COLOR=$(echo "$RESPONSE" | jq -r '.color // empty')
# Validate color - handle wrapper object format
API_COLOR_RAW=$(echo "$RESPONSE" | jq '.color')
API_COLOR=$(unwrap_value "$API_COLOR_RAW")
if [ "$API_COLOR" != "$EXPECTED_COLOR" ]; then
echo " ✗ FAILED: Color mismatch - Expected: '$EXPECTED_COLOR', Got: '$API_COLOR'"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
DOMAIN_ID=$(terraform output -raw domain_id)
STATUS_PAGE_ID=$(terraform output -raw status_page_id)
@@ -33,7 +43,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Domain exists in API"
API_DOMAIN=$(echo "$RESPONSE" | jq -r '.domain // empty')
API_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.domain')
API_DOMAIN=$(unwrap_value "$API_DOMAIN_RAW")
if [ "$API_DOMAIN" != "$EXPECTED_DOMAIN_NAME" ]; then
echo " ✗ FAILED: Domain name mismatch - Expected: '$EXPECTED_DOMAIN_NAME', Got: '$API_DOMAIN'"
exit 1
@@ -66,7 +77,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Status page exists in API"
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_SP_NAME" ]; then
echo " ✗ FAILED: Name mismatch - Expected: '$EXPECTED_SP_NAME', Got: '$API_NAME'"
exit 1
@@ -92,14 +104,16 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Status page domain exists in API"
API_SUBDOMAIN=$(echo "$RESPONSE" | jq -r '.subdomain // empty')
API_SUBDOMAIN_RAW=$(echo "$RESPONSE" | jq '.subdomain')
API_SUBDOMAIN=$(unwrap_value "$API_SUBDOMAIN_RAW")
if [ "$API_SUBDOMAIN" != "$EXPECTED_SUBDOMAIN" ]; then
echo " ✗ FAILED: Subdomain mismatch - Expected: '$EXPECTED_SUBDOMAIN', Got: '$API_SUBDOMAIN'"
exit 1
fi
echo " ✓ Subdomain matches: $API_SUBDOMAIN"
API_FULL_DOMAIN=$(echo "$RESPONSE" | jq -r '.fullDomain // empty')
API_FULL_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.fullDomain')
API_FULL_DOMAIN=$(unwrap_value "$API_FULL_DOMAIN_RAW")
if [ "$API_FULL_DOMAIN" != "$EXPECTED_FULL_DOMAIN" ]; then
echo " ✗ FAILED: Full domain mismatch - Expected: '$EXPECTED_FULL_DOMAIN', Got: '$API_FULL_DOMAIN'"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
DOMAIN_ID=$(terraform output -raw domain_id)
STATUS_PAGE_ID=$(terraform output -raw status_page_id)
@@ -34,7 +44,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Domain exists in API"
API_DOMAIN=$(echo "$RESPONSE" | jq -r '.domain // empty')
API_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.domain')
API_DOMAIN=$(unwrap_value "$API_DOMAIN_RAW")
if [ "$API_DOMAIN" != "$EXPECTED_DOMAIN_NAME" ]; then
echo " ✗ FAILED: Domain name mismatch - Expected: '$EXPECTED_DOMAIN_NAME', Got: '$API_DOMAIN'"
exit 1
@@ -64,11 +75,12 @@ echo ""
echo " Verifying status page domain computed fields (Issue #2236)..."
echo " Status Page Domain ID: $STATUS_PAGE_DOMAIN_ID"
# Note: cnameVerificationToken has no read permission, so we don't include it in the select
RESPONSE=$(curl -s -X POST "${ONEUPTIME_URL}/api/status-page-domain/${STATUS_PAGE_DOMAIN_ID}/get-item" \
-H "Content-Type: application/json" \
-H "Apikey: $TF_VAR_api_key" \
-H "projectid: $TF_VAR_project_id" \
-d '{"select": {"_id": true, "subdomain": true, "fullDomain": true, "cnameVerificationToken": true}}')
-d '{"select": {"_id": true, "subdomain": true, "fullDomain": true}}')
API_ID=$(echo "$RESPONSE" | jq -r '._id // empty')
if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
@@ -79,7 +91,8 @@ fi
echo " ✓ Status page domain exists in API"
# Validate subdomain
API_SUBDOMAIN=$(echo "$RESPONSE" | jq -r '.subdomain // empty')
API_SUBDOMAIN_RAW=$(echo "$RESPONSE" | jq '.subdomain')
API_SUBDOMAIN=$(unwrap_value "$API_SUBDOMAIN_RAW")
if [ "$API_SUBDOMAIN" != "$EXPECTED_SUBDOMAIN" ]; then
echo " ✗ FAILED: Subdomain mismatch - Expected: '$EXPECTED_SUBDOMAIN', Got: '$API_SUBDOMAIN'"
exit 1
@@ -87,7 +100,8 @@ fi
echo " ✓ Subdomain matches: $API_SUBDOMAIN"
# Validate computed full_domain (Issue #2236 key validation)
API_FULL_DOMAIN=$(echo "$RESPONSE" | jq -r '.fullDomain // empty')
API_FULL_DOMAIN_RAW=$(echo "$RESPONSE" | jq '.fullDomain')
API_FULL_DOMAIN=$(unwrap_value "$API_FULL_DOMAIN_RAW")
if [ -z "$API_FULL_DOMAIN" ] || [ "$API_FULL_DOMAIN" = "null" ]; then
echo " ✗ FAILED: fullDomain is empty - server should compute this value"
exit 1

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
INCIDENT_ID=$(terraform output -raw incident_id)
INCIDENT_SEVERITY_ID=$(terraform output -raw incident_severity_id)
@@ -30,7 +40,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Incident severity exists in API"
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_SEVERITY_NAME" ]; then
echo " ✗ FAILED: Severity name mismatch - Expected: '$EXPECTED_SEVERITY_NAME', Got: '$API_NAME'"
exit 1
@@ -56,24 +67,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Incident exists in API"
# Validate title
API_TITLE=$(echo "$RESPONSE" | jq -r '.title // empty')
# Validate title - handle wrapper object format
API_TITLE_RAW=$(echo "$RESPONSE" | jq '.title')
API_TITLE=$(unwrap_value "$API_TITLE_RAW")
if [ "$API_TITLE" != "$EXPECTED_TITLE" ]; then
echo " ✗ FAILED: Title mismatch - Expected: '$EXPECTED_TITLE', Got: '$API_TITLE'"
exit 1
fi
echo " ✓ Title matches: $API_TITLE"
# Validate incident severity relationship
API_SEVERITY_ID=$(echo "$RESPONSE" | jq -r '.incidentSeverityId // empty')
# Validate incident severity relationship - handle wrapper object format (ObjectID)
API_SEVERITY_ID_RAW=$(echo "$RESPONSE" | jq '.incidentSeverityId')
API_SEVERITY_ID=$(unwrap_value "$API_SEVERITY_ID_RAW")
if [ "$API_SEVERITY_ID" != "$INCIDENT_SEVERITY_ID" ]; then
echo " ✗ FAILED: Incident severity ID mismatch - Expected: '$INCIDENT_SEVERITY_ID', Got: '$API_SEVERITY_ID'"
exit 1
fi
echo " ✓ Incident severity ID matches"
# Validate server-provided currentIncidentStateId
CURRENT_STATE_ID=$(echo "$RESPONSE" | jq -r '.currentIncidentStateId // empty')
# Validate server-provided currentIncidentStateId - handle wrapper object format (ObjectID)
CURRENT_STATE_ID_RAW=$(echo "$RESPONSE" | jq '.currentIncidentStateId')
CURRENT_STATE_ID=$(unwrap_value "$CURRENT_STATE_ID_RAW")
if [ -n "$CURRENT_STATE_ID" ] && [ "$CURRENT_STATE_ID" != "null" ]; then
echo " ✓ Server-assigned currentIncidentStateId: $CURRENT_STATE_ID"
fi

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
ALERT_ID=$(terraform output -raw alert_id)
ALERT_SEVERITY_ID=$(terraform output -raw alert_severity_id)
@@ -30,7 +40,8 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Alert severity exists in API"
API_NAME=$(echo "$RESPONSE" | jq -r '.name // empty')
API_NAME_RAW=$(echo "$RESPONSE" | jq '.name')
API_NAME=$(unwrap_value "$API_NAME_RAW")
if [ "$API_NAME" != "$EXPECTED_SEVERITY_NAME" ]; then
echo " ✗ FAILED: Severity name mismatch - Expected: '$EXPECTED_SEVERITY_NAME', Got: '$API_NAME'"
exit 1
@@ -56,24 +67,27 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Alert exists in API"
# Validate title
API_TITLE=$(echo "$RESPONSE" | jq -r '.title // empty')
# Validate title - handle wrapper object format
API_TITLE_RAW=$(echo "$RESPONSE" | jq '.title')
API_TITLE=$(unwrap_value "$API_TITLE_RAW")
if [ "$API_TITLE" != "$EXPECTED_TITLE" ]; then
echo " ✗ FAILED: Title mismatch - Expected: '$EXPECTED_TITLE', Got: '$API_TITLE'"
exit 1
fi
echo " ✓ Title matches: $API_TITLE"
# Validate alert severity relationship
API_SEVERITY_ID=$(echo "$RESPONSE" | jq -r '.alertSeverityId // empty')
# Validate alert severity relationship - handle wrapper object format (ObjectID)
API_SEVERITY_ID_RAW=$(echo "$RESPONSE" | jq '.alertSeverityId')
API_SEVERITY_ID=$(unwrap_value "$API_SEVERITY_ID_RAW")
if [ "$API_SEVERITY_ID" != "$ALERT_SEVERITY_ID" ]; then
echo " ✗ FAILED: Alert severity ID mismatch - Expected: '$ALERT_SEVERITY_ID', Got: '$API_SEVERITY_ID'"
exit 1
fi
echo " ✓ Alert severity ID matches"
# Validate server-provided currentAlertStateId
CURRENT_STATE_ID=$(echo "$RESPONSE" | jq -r '.currentAlertStateId // empty')
# Validate server-provided currentAlertStateId - handle wrapper object format (ObjectID)
CURRENT_STATE_ID_RAW=$(echo "$RESPONSE" | jq '.currentAlertStateId')
CURRENT_STATE_ID=$(unwrap_value "$CURRENT_STATE_ID_RAW")
if [ -n "$CURRENT_STATE_ID" ] && [ "$CURRENT_STATE_ID" != "null" ]; then
echo " ✓ Server-assigned currentAlertStateId: $CURRENT_STATE_ID"
fi

View File

@@ -4,6 +4,16 @@
set -e
# Helper function to unwrap API values that might be in wrapper format
unwrap_value() {
local raw_value="$1"
if echo "$raw_value" | jq -e '.value' > /dev/null 2>&1; then
echo "$raw_value" | jq -r '.value'
else
echo "$raw_value" | jq -r '.'
fi
}
# Get terraform outputs
RESOURCE_ID=$(terraform output -raw scheduled_maintenance_event_id)
EXPECTED_TITLE=$(terraform output -raw scheduled_maintenance_event_title)
@@ -14,7 +24,7 @@ echo " Verifying scheduled maintenance event with server defaults via API..."
echo " Resource ID: $RESOURCE_ID"
# Call API to get the resource
RESPONSE=$(curl -s -X POST "${ONEUPTIME_URL}/api/scheduled-maintenance-event/${RESOURCE_ID}/get-item" \
RESPONSE=$(curl -s -X POST "${ONEUPTIME_URL}/api/scheduled-maintenance/${RESOURCE_ID}/get-item" \
-H "Content-Type: application/json" \
-H "Apikey: $TF_VAR_api_key" \
-H "projectid: $TF_VAR_project_id" \
@@ -29,8 +39,9 @@ if [ -z "$API_ID" ] || [ "$API_ID" = "null" ]; then
fi
echo " ✓ Scheduled maintenance event exists in API"
# Validate title
API_TITLE=$(echo "$RESPONSE" | jq -r '.title // empty')
# Validate title - handle wrapper object format
API_TITLE_RAW=$(echo "$RESPONSE" | jq '.title')
API_TITLE=$(unwrap_value "$API_TITLE_RAW")
if [ "$API_TITLE" != "$EXPECTED_TITLE" ]; then
echo " ✗ FAILED: Title mismatch - Expected: '$EXPECTED_TITLE', Got: '$API_TITLE'"
exit 1
@@ -49,8 +60,9 @@ if [ -n "$API_ENDS_AT" ] && [ "$API_ENDS_AT" != "null" ]; then
echo " ✓ endsAt is set: $API_ENDS_AT"
fi
# Validate server-provided currentScheduledMaintenanceStateId
CURRENT_STATE_ID=$(echo "$RESPONSE" | jq -r '.currentScheduledMaintenanceStateId // empty')
# Validate server-provided currentScheduledMaintenanceStateId - handle wrapper object format (ObjectID)
CURRENT_STATE_ID_RAW=$(echo "$RESPONSE" | jq '.currentScheduledMaintenanceStateId')
CURRENT_STATE_ID=$(unwrap_value "$CURRENT_STATE_ID_RAW")
if [ -n "$CURRENT_STATE_ID" ] && [ "$CURRENT_STATE_ID" != "null" ]; then
echo " ✓ Server-assigned currentScheduledMaintenanceStateId: $CURRENT_STATE_ID"
fi