testzeus-hypermind#
Manage Hypermind code blocks for AI-assisted test steps in TestZeus.
Category: integration · Version: 1.0.0 · Requires: testzeus-auth
Triggers: code block, hypermind, reusable code, code snippet, upload code, AI code, code library, code management
Overview#
Hypermind code blocks are reusable code snippets that provide AI-assisted functionality in test steps. They enable AI to generate context-aware test steps using your custom code logic.
Quick Reference#
# List code blocks
testzeus hypermind-code-blocks list
# Create code block
testzeus hypermind-code-blocks create \
--name "Auth Helper" \
--code-content "async function authenticate(user, pass) { ... }"
# Create from file
testzeus hypermind-code-blocks create \
--name "Utils" \
--code-file ./utils.py
# Update
testzeus hypermind-code-blocks update block_id --code-content "new code"
# Delete
testzeus hypermind-code-blocks delete block_id
Code Block Structure#
JavaScript Example#
// Auth helper function
async function authenticate(username, password) {
const response = await fetch('/api/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
if (!response.ok) {
throw new Error('Authentication failed');
}
return await response.json();
}
// Export for use in tests
module.exports = { authenticate };
Python Example#
import requests
def authenticate(username: str, password: str) -> dict:
"""Authenticate user and return session token."""
response = requests.post(
'https://api.example.com/auth/login',
json={'username': username, 'password': password}
)
response.raise_for_status()
return response.json()
Create Code Block#
From Inline Code#
testzeus hypermind-code-blocks create \
--name "API Auth Helper" \
--code-content '
async function authenticate(username, password) {
const response = await fetch(\"/api/auth/login\", {
method: \"POST\",
headers: { \"Content-Type\": \"application/json\" },
body: JSON.stringify({ username, password })
});
return response.json();
}
module.exports = { authenticate };
'
From File#
# Python file
testzeus hypermind-code-blocks create \
--name "Test Helpers" \
--code-file ./tests/helpers.py
# JavaScript file
testzeus hypermind-code-blocks create \
--name "Browser Utils" \
--code-file ./utils/browser.js
With Metadata#
testzeus hypermind-code-blocks create \
--name "Payment Processor" \
--code-content 'async function processPayment(amount, card) { ... }' \
--tags payment \
--tags integration
Manage Code Blocks#
List Blocks#
# List all
testzeus hypermind-code-blocks list
# Filter by name
testzeus hypermind-code-blocks list --filters name~"auth"
# Get details
testzeus hypermind-code-blocks get block_id
Update Block#
# Update code content
testzeus hypermind-code-blocks update block_id \
--code-content 'async function authenticate(username, token) { ... }'
# Update from file
testzeus hypermind-code-blocks update block_id \
--code-file ./updated-helpers.py
Delete Block#
testzeus hypermind-code-blocks delete block_id
File Management#
Upload Additional Files#
# Upload supporting file
testzeus hypermind-code-blocks upload-file block_id ./config.json
# Upload multiple files
testzeus hypermind-code-blocks upload-file block_id ./module1.py
testzeus hypermind-code-blocks upload-file block_id ./module2.py
Remove Files#
# Remove specific file
testzeus hypermind-code-blocks remove-file block_id ./old-module.py
# Clear all files
testzeus hypermind-code-blocks delete-all-files block_id
Common Use Cases#
Authentication Helpers#
// auth-helper.js
async function login(username, password) {
const token = await fetchToken(username, password);
return { token, authenticated: true };
}
async function logout(token) {
await invalidateToken(token);
return { authenticated: false };
}
module.exports = { login, logout };
API Utilities#
# api-utils.py
import requests
from typing import Dict, Any
def api_get(endpoint: str, headers: Dict) -> Dict[str, Any]:
response = requests.get(f"https://api.example.com{endpoint}", headers=headers)
response.raise_for_status()
return response.json()
def api_post(endpoint: str, data: Dict, headers: Dict) -> Dict[str, Any]:
response = requests.post(f"https://api.example.com{endpoint}", json=data, headers=headers)
response.raise_for_status()
return response.json()
Data Generators#
// data-generators.js
function generateUser() {
return {
username: `user_${Date.now()}`,
email: `user_${Date.now()}@test.com`,
password: 'Test123!',
profile: {
firstName: 'Test',
lastName: 'User'
}
};
}
function generateProduct() {
return {
name: `Product ${Math.random().toString(36).substr(2, 9)}`,
price: (Math.random() * 100).toFixed(2),
sku: `SKU-${Date.now()}`
};
}
module.exports = { generateUser, generateProduct };
Test Fixtures#
# fixtures.py
import json
def load_test_data(filename: str) -> dict:
with open(f'test_data/{filename}') as f:
return json.load(f)
def get_fixture(fixture_name: str) -> dict:
fixtures = {
'valid_user': {'username': 'test', 'password': 'test123'},
'admin': {'username': 'admin', 'password': 'admin123', 'role': 'admin'}
}
return fixtures.get(fixture_name, {})
SDK Usage#
from testzeus_sdk import TestZeusClient
async def main():
async with TestZeusClient() as client:
# Create code block
block = await client.hypermind_code_blocks.create({
"name": "Auth Helpers",
"code_content": """
async function login(username, password) {
// Implementation
}
module.exports = { login };
"""
})
# Upload supporting file
await client.hypermind_code_blocks.upload_file(
block.id,
"./auth-config.json"
)
# List blocks
blocks = await client.hypermind_code_blocks.get_list()
# Update
await client.hypermind_code_blocks.update(
block.id,
{"code_content": "updated code..."}
)
Best Practices#
1. Single Responsibility#
// Good - single function per concern
async function authenticate() { ... }
async function getUserProfile() { ... }
async function updateSettings() { ... }
// Avoid - mixing concerns
async function doEverything() { /* login, profile, settings, cleanup */ }
2. Proper Error Handling#
// Good
async function apiCall(endpoint) {
try {
const response = await fetch(endpoint);
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('API call failed:', error);
throw error;
}
}
3. Document Your Code#
def calculate_total(items: list, tax_rate: float = 0.1) -> float:
"""
Calculate total price including tax.
Args:
items: List of item prices
tax_rate: Tax rate as decimal (default 10%)
Returns:
Total including tax
Example:
>>> calculate_total([10, 20, 30], 0.1)
66.0
"""
subtotal = sum(items)
tax = subtotal * tax_rate
return subtotal + tax
4. Version Control#
Keep your code blocks in version control:
# Store in git
git add ./hypermind-code/
git commit -m "Add auth helpers"
Error Handling#
Common Errors#
Error |
Cause |
Solution |
|---|---|---|
|
Code has errors |
Validate syntax |
|
Code exceeds limit |
Split into smaller blocks |
|
References undefined |
Include all dependencies |
Validation#
Always validate code before creating:
# Validate JavaScript
node --check ./code.js
# Validate Python
python -m py_compile ./code.py
Component Schema#
Use CodeBlockPreview component:
{
"component": "CodeBlockPreview",
"props": {
"name": "Auth Helper",
"language": "javascript",
"preview": "async function authenticate(username, password) { ... }",
"fileCount": 0,
"tags": ["auth", "api"]
}
}