@base = http://localhost:3000
@apiKey = bnt_727d2f4f72bd03ed96da5278bb971a00cb0a2454d4d70f9748b5c39f3f69d88d

###############################################################################
# AUTO-ENHANCE TESTS
# Tests: Prompt auto-enhancement feature
#
# Test Coverage:
# 1. Generate without autoEnhance param (defaults to true)
# 2. Generate with autoEnhance: false
# 3. Generate with autoEnhance: true
# 4. Verify enhancement quality
# 5. List generations with autoEnhance field
# 6. Verify response structure
###############################################################################


###############################################################################
# TEST 1: Generate Without autoEnhance Parameter
# Should default to true (enhancement enabled)
###############################################################################

### Step 1.1: Create generation without autoEnhance param
# @name genDefaultEnhance
POST {{base}}/api/v1/generations
Content-Type: application/json
X-API-Key: {{apiKey}}

{
  "prompt": "a simple test image",
  "aspectRatio": "1:1"
}

###

@genDefaultId = {{genDefaultEnhance.response.body.$.data.id}}

### Step 1.2: Poll generation
# @name checkGenDefault
GET {{base}}/api/v1/generations/{{genDefaultId}}
X-API-Key: {{apiKey}}

###
# Verify:
# - autoEnhance = true
# - originalPrompt = "a simple test image"
# - prompt != originalPrompt (was enhanced)


###############################################################################
# TEST 2: Generate with autoEnhance: false
# Should NOT enhance the prompt
###############################################################################

### Step 2.1: Create generation with autoEnhance: false
# @name genNoEnhance
POST {{base}}/api/v1/generations
Content-Type: application/json
X-API-Key: {{apiKey}}

{
  "prompt": "another test image",
  "aspectRatio": "1:1",
  "autoEnhance": false
}

###

@genNoEnhanceId = {{genNoEnhance.response.body.$.data.id}}

### Step 2.2: Poll generation
# @name checkGenNoEnhance
GET {{base}}/api/v1/generations/{{genNoEnhanceId}}
X-API-Key: {{apiKey}}

###
# Verify:
# - autoEnhance = false
# - originalPrompt = "another test image"
# - prompt = "another test image" (same, NOT enhanced)


###############################################################################
# TEST 3: Generate with autoEnhance: true
# Should enhance the prompt
###############################################################################

### Step 3.1: Create generation with explicit autoEnhance: true
# @name genExplicitEnhance
POST {{base}}/api/v1/generations
Content-Type: application/json
X-API-Key: {{apiKey}}

{
  "prompt": "third test image",
  "aspectRatio": "1:1",
  "autoEnhance": true
}

###

@genExplicitId = {{genExplicitEnhance.response.body.$.data.id}}

### Step 3.2: Poll generation
# @name checkGenExplicit
GET {{base}}/api/v1/generations/{{genExplicitId}}
X-API-Key: {{apiKey}}

###
# Verify:
# - autoEnhance = true
# - originalPrompt = "third test image"
# - prompt != originalPrompt (was enhanced)
# - prompt is longer and more descriptive


###############################################################################
# TEST 4: Verify Enhancement Quality
# Enhanced prompt should be longer and more descriptive
###############################################################################

### Step 4.1: Get enhanced generation
# @name getEnhancedGen
GET {{base}}/api/v1/generations/{{genDefaultId}}
X-API-Key: {{apiKey}}

###
# Verify:
# - Enhanced prompt is longer than original
# - Enhanced prompt may contain: "photorealistic", "detailed", "scene", etc.
# - Compare: prompt.length > originalPrompt.length


###############################################################################
# TEST 5: List Generations with autoEnhance Field
###############################################################################

### Step 5.1: List all generations
# @name listGens
GET {{base}}/api/v1/generations
X-API-Key: {{apiKey}}

###
# Verify:
# - Each generation has autoEnhance field (boolean)
# - Some generations have autoEnhance = true
# - Some generations have autoEnhance = false


### Step 5.2: Filter by status to see recent ones
# @name listSuccessGens
GET {{base}}/api/v1/generations?status=success&limit=10
X-API-Key: {{apiKey}}

###


###############################################################################
# TEST 6: Verify Response Structure
###############################################################################

### Step 6.1: Get generation and check fields
# @name verifyStructure
GET {{base}}/api/v1/generations/{{genDefaultId}}
X-API-Key: {{apiKey}}

###
# Expected fields:
# - prompt: string (final prompt, possibly enhanced)
# - originalPrompt: string (original input prompt)
# - autoEnhance: boolean (whether enhancement was applied)
# - status: string
# - outputImageId: string (on success)
# - processingTimeMs: number (on completion)


###############################################################################
# ADDITIONAL TEST CASES
###############################################################################

### Complex prompt that might be enhanced differently
# @name complexPrompt
POST {{base}}/api/v1/generations
Content-Type: application/json
X-API-Key: {{apiKey}}

{
  "prompt": "a cat sitting on a windowsill",
  "aspectRatio": "16:9"
}

###

@complexId = {{complexPrompt.response.body.$.data.id}}

### Check complex prompt enhancement
# @name checkComplexPrompt
GET {{base}}/api/v1/generations/{{complexId}}
X-API-Key: {{apiKey}}

###
# Verify: Enhanced prompt should add details like lighting, perspective, style, etc.


### Short prompt enhancement
# @name shortPrompt
POST {{base}}/api/v1/generations
Content-Type: application/json
X-API-Key: {{apiKey}}

{
  "prompt": "sunset",
  "aspectRatio": "21:9"
}

###

@shortId = {{shortPrompt.response.body.$.data.id}}

### Check short prompt enhancement
# @name checkShortPrompt
GET {{base}}/api/v1/generations/{{shortId}}
X-API-Key: {{apiKey}}

###
# Verify: Very short prompts should be significantly enhanced


###############################################################################
# NOTES
###############################################################################
#
# Auto-Enhance Feature:
# - Default: autoEnhance = true (prompts are enhanced by AI)
# - Set autoEnhance: false to disable enhancement
# - Enhanced prompts are more detailed and descriptive
#
# Response Fields:
# - prompt: The final prompt (enhanced if autoEnhance was true)
# - originalPrompt: The user's original input
# - autoEnhance: Boolean flag indicating if enhancement was applied
#
# Enhancement adds:
# - Descriptive adjectives
# - Lighting and atmosphere details
# - Perspective and composition hints
# - Style and rendering suggestions
#
