// Force-set the expires_at of the most-recent ACTIVE chat_session by hitting
// the dev-only /internal/_test/force-session-expires-at endpoint. Used by the
// Stage 3 mitra maestro flow (ts-mitra-3-04-session_ended_banner.yaml) to
// drive the red "Durasi sesi habis" banner and "SELESAI" timer pill without
// waiting in real time.
//
// Reads BACKEND_INTERNAL_URL + SECONDS_FROM_NOW from env. Backend re-runs
// startSessionTimer with the new schedule AND broadcasts a timer resync so
// the chat screen flips into the sessionExpired UI within ~1s.
const url = BACKEND_INTERNAL_URL || 'http://localhost:3001'
// Default to a negative offset so the session is immediately expired — the
// mitra flow wants the ended banner / SELESAI pill, not the 3-min warning.
const seconds = parseInt(SECONDS_FROM_NOW || '-1', 10)
const resp = http.post(`${url}/internal/_test/force-session-expires-at`, {
  body: JSON.stringify({ latest: true, seconds_from_now: seconds }),
  headers: { 'Content-Type': 'application/json' },
})
if (resp.status !== 200) {
  throw new Error(`force-session-expires-at failed (${resp.status}): ${resp.body}`)
}
const data = json(resp.body)
output.SESSION_ID = data.session_id
output.EXPIRES_AT = data.expires_at
