#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" TMP_DIR="$(mktemp -d)" trap 'rm -rf "${TMP_DIR}"' EXIT # shellcheck source=backend/scripts/smoke_common.sh source "${SCRIPT_DIR}/smoke_common.sh" wait_for_health request "ping" "GET" "${API_URL}/api/v1/ping" "200" request "db_ping" "GET" "${API_URL}/api/v1/db/ping" "200" request "manifest" "GET" "${API_URL}/api/v1/manifest" "200" create_fresh_scheme_from_upload "smoke-core" request "scheme_detail" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}" "200" assert_json_eq "${TMP_DIR}/scheme_detail.body" "scheme_id" "${SCHEME_ID}" assert_json_eq "${TMP_DIR}/scheme_detail.body" "name" "${FRESH_SCHEME_NAME}" assert_json_eq "${TMP_DIR}/scheme_detail.body" "status" "draft" request "scheme_versions" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/versions?limit=20&offset=0" "200" assert_json_len_eq "${TMP_DIR}/scheme_versions.body" "items" "1" request "scheme_current" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/current" "200" CURRENT_VERSION_ID="$(json_get "${TMP_DIR}/scheme_current.body" "scheme_version_id")" CURRENT_STATUS="$(json_get "${TMP_DIR}/scheme_current.body" "status")" echo "CURRENT_VERSION_ID=${CURRENT_VERSION_ID}" echo "CURRENT_STATUS=${CURRENT_STATUS}" assert_json_eq "${TMP_DIR}/scheme_current.body" "status" "draft" request "editor_context" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/editor/context" "200" assert_json_eq "${TMP_DIR}/editor_context.body" "current_scheme_version_id" "${CURRENT_VERSION_ID}" assert_json_eq "${TMP_DIR}/editor_context.body" "current_is_draft" "true" request "ensure_draft" "POST" "${API_URL}/api/v1/schemes/${SCHEME_ID}/draft/ensure" "200" DRAFT_VERSION_ID="$(json_get "${TMP_DIR}/ensure_draft.body" "scheme_version_id")" DRAFT_CREATED="$(json_get "${TMP_DIR}/ensure_draft.body" "created")" echo "DRAFT_VERSION_ID=${DRAFT_VERSION_ID}" echo "DRAFT_CREATED=${DRAFT_CREATED}" assert_json_eq "${TMP_DIR}/ensure_draft.body" "scheme_version_id" "${CURRENT_VERSION_ID}" assert_json_eq "${TMP_DIR}/ensure_draft.body" "created" "false" request "draft_summary" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/draft/summary?expected_scheme_version_id=${DRAFT_VERSION_ID}" "200" request "draft_structure" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/draft/structure?expected_scheme_version_id=${DRAFT_VERSION_ID}" "200" request "draft_validation" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/draft/validation?expected_scheme_version_id=${DRAFT_VERSION_ID}" "200" request "draft_compare_preview" "GET" "${API_URL}/api/v1/schemes/${SCHEME_ID}/draft/compare-preview?expected_scheme_version_id=${DRAFT_VERSION_ID}" "200" assert_json_eq "${TMP_DIR}/draft_summary.body" "scheme_version_id" "${DRAFT_VERSION_ID}" assert_json_eq "${TMP_DIR}/draft_structure.body" "scheme_version_id" "${DRAFT_VERSION_ID}" assert_json_eq "${TMP_DIR}/draft_validation.body" "scheme_version_id" "${DRAFT_VERSION_ID}" assert_json_eq "${TMP_DIR}/draft_compare_preview.body" "draft_scheme_version_id" "${DRAFT_VERSION_ID}" TOTAL_SEATS="$(json_get "${TMP_DIR}/draft_summary.body" "total_seats")" echo "TOTAL_SEATS=${TOTAL_SEATS}" read -r SEAT_RECORD_ID SECTOR_RECORD_ID GROUP_RECORD_ID EXPLAIN_SEAT_ID <