skailan-conversations
Version:
Servicio de conversaciones y mensajería para Skailan
135 lines • 5.12 kB
JavaScript
;
const axios = require("axios");
const BASE_URL = "http://localhost:3007";
async function testTenantResolver() {
console.log("🧪 Probando tenantResolver...\n");
try {
// Test 1: Sin header x-tenant-id (debería fallar)
console.log("📋 Test 1: Sin header x-tenant-id");
try {
const response = await axios.post(`${BASE_URL}/webhook/telegram`, {
update_id: 1,
message: {
message_id: 1,
from: { id: 123, first_name: "Test User" },
chat: { id: 456, type: "private" },
date: Date.now() / 1000,
text: "Hello",
},
});
console.log("❌ ERROR: Debería haber fallado sin x-tenant-id");
}
catch (error) {
console.log("✅ Correcto: Falló sin x-tenant-id");
console.log(" Status:", error.response?.status);
console.log(" Error:", error.response?.data?.error);
}
console.log("\n📋 Test 2: Con header x-tenant-id válido");
try {
const response = await axios.post(`${BASE_URL}/webhook/telegram`, {
update_id: 1,
message: {
message_id: 1,
from: { id: 123, first_name: "Test User" },
chat: { id: 456, type: "private" },
date: Date.now() / 1000,
text: "Hello",
},
}, {
headers: {
"x-tenant-id": "test-organization-id",
"Content-Type": "application/json",
},
});
console.log("✅ Respuesta recibida:", response.status);
console.log(" Data:", response.data);
}
catch (error) {
console.log("❌ Error con x-tenant-id válido:");
console.log(" Status:", error.response?.status);
console.log(" Error:", error.response?.data);
}
console.log("\n📋 Test 3: Endpoint de verificación (sin tenantResolver)");
try {
const response = await axios.get(`${BASE_URL}/webhook/telegram`);
console.log("✅ Endpoint de verificación funcionando");
console.log(" Status:", response.status);
console.log(" Data:", response.data);
}
catch (error) {
console.log("❌ Error en endpoint de verificación:");
console.log(" Status:", error.response?.status);
console.log(" Error:", error.response?.data);
}
console.log("\n📋 Test 4: Test tenant endpoint");
try {
const response = await axios.get(`${BASE_URL}/test-tenant`, {
headers: {
"x-tenant-id": "test-organization-id",
},
});
console.log("✅ Test tenant funcionando");
console.log(" Status:", response.status);
console.log(" Data:", response.data);
}
catch (error) {
console.log("❌ Error en test tenant:");
console.log(" Status:", error.response?.status);
console.log(" Error:", error.response?.data);
}
}
catch (error) {
console.error("❌ Error general:", error.message);
}
}
async function testWebhookWithRealData() {
console.log("\n🧪 Probando webhook con datos reales de Telegram...\n");
const telegramWebhookData = {
update_id: 123456789,
message: {
message_id: 987,
from: {
id: 123456789,
is_bot: false,
first_name: "Juan",
username: "juan_user",
language_code: "es",
},
chat: {
id: 123456789,
type: "private",
first_name: "Juan",
username: "juan_user",
},
date: Math.floor(Date.now() / 1000),
text: "Hola, ¿cómo estás?",
},
};
try {
const response = await axios.post(`${BASE_URL}/webhook/telegram`, telegramWebhookData, {
headers: {
"x-tenant-id": "test-organization-id",
"Content-Type": "application/json",
},
});
console.log("✅ Webhook procesado correctamente");
console.log(" Status:", response.status);
console.log(" Response:", response.data);
}
catch (error) {
console.log("❌ Error procesando webhook:");
console.log(" Status:", error.response?.status);
console.log(" Error:", error.response?.data);
}
}
async function main() {
console.log("🚀 Iniciando pruebas de tenantResolver y webhook...\n");
await testTenantResolver();
await testWebhookWithRealData();
console.log("\n✅ Pruebas completadas");
}
if (require.main === module) {
main().catch(console.error);
}
//# sourceMappingURL=test-tenant-resolver.js.map