Files
ai-stack-deployer/tests/test-api-formats.ts
Oussama Douhou e617114310 refactor: enterprise-grade project structure
- Move test files to tests/
- Archive session notes to docs/archive/
- Remove temp/diagnostic files
- Clean src/ to only contain production code
2026-01-10 12:32:54 +01:00

69 lines
2.6 KiB
TypeScript
Executable File

#!/usr/bin/env bun
/**
* Test script to verify Dokploy API endpoint formats
* Tests the three core operations needed for deployment
*/
import { createDokployClient } from './api/dokploy.js';
const TEST_PROJECT_NAME = `test-api-${Date.now()}`;
const TEST_APP_NAME = `test-app-${Date.now()}`;
console.log('═══════════════════════════════════════');
console.log(' Dokploy API Format Tests');
console.log('═══════════════════════════════════════\n');
try {
const client = createDokployClient();
// Test 1: project.create
console.log('📋 Test 1: project.create');
console.log('Request: { name, description }');
const project = await client.createProject(
TEST_PROJECT_NAME,
'API format test project'
);
console.log('Response format:');
console.log(JSON.stringify(project, null, 2));
console.log(`✅ Project created: ${project.projectId}\n`);
// Test 2: application.create
console.log('📋 Test 2: application.create');
console.log('Request: { name, appName, projectId, dockerImage, sourceType }');
const application = await client.createApplication(
TEST_APP_NAME,
project.projectId,
'nginx:alpine'
);
console.log('Response format:');
console.log(JSON.stringify(application, null, 2));
console.log(`✅ Application created: ${application.applicationId}\n`);
// Test 3: application.deploy
console.log('📋 Test 3: application.deploy');
console.log('Request: { applicationId }');
await client.deployApplication(application.applicationId);
console.log('Response: void (no return value)');
console.log(`✅ Deployment triggered\n`);
// Cleanup
console.log('🧹 Cleaning up test resources...');
await client.deleteApplication(application.applicationId);
console.log(`✅ Deleted application: ${application.applicationId}`);
await client.deleteProject(project.projectId);
console.log(`✅ Deleted project: ${project.projectId}`);
console.log('\n═══════════════════════════════════════');
console.log(' All API Format Tests Passed!');
console.log('═══════════════════════════════════════');
} catch (error) {
console.error('\n❌ Test failed:');
console.error(error);
if (error instanceof Error) {
console.error('Error message:', error.message);
console.error('Error stack:', error.stack);
}
process.exit(1);
}