- Move test files to tests/ - Archive session notes to docs/archive/ - Remove temp/diagnostic files - Clean src/ to only contain production code
69 lines
2.6 KiB
TypeScript
Executable File
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);
|
|
}
|