-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-admin-posts.js
More file actions
96 lines (81 loc) · 3.58 KB
/
Copy pathtest-admin-posts.js
File metadata and controls
96 lines (81 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const { pool } = require('./src/config/database');
async function testAdminPosts() {
try {
console.log('🔍 Verificando publicaciones en la base de datos...\n');
// Verificar conexión a la base de datos
const [connectionTest] = await pool.execute('SELECT 1 as test');
console.log('✅ Conexión a la base de datos exitosa');
// Contar total de publicaciones
const [countResult] = await pool.execute('SELECT COUNT(*) as total FROM Publicaciones');
const totalPosts = countResult[0].total;
console.log(`📊 Total de publicaciones en la base de datos: ${totalPosts}`);
if (totalPosts === 0) {
console.log('⚠️ No hay publicaciones en la base de datos');
console.log('💡 Creando una publicación de prueba...\n');
// Verificar si existe un administrador
const [adminResult] = await pool.execute('SELECT * FROM Administrador LIMIT 1');
let adminId;
if (adminResult.length === 0) {
console.log('👤 No hay administradores, creando uno...');
const [insertAdmin] = await pool.execute(
'INSERT INTO Administrador (Nombre, Correo_electronico, Contraseña) VALUES (?, ?, ?)',
['Admin Test', 'admin@test.com', 'password123']
);
adminId = insertAdmin.insertId;
console.log(`✅ Administrador creado con ID: ${adminId}`);
} else {
adminId = adminResult[0].ID_administrador;
console.log(`✅ Usando administrador existente con ID: ${adminId}`);
}
// Crear publicación de prueba
const [insertPost] = await pool.execute(
`INSERT INTO Publicaciones (Titulo, Contenido, Resumen, Estado, ID_administrador, Fecha_creacion, Fecha_modificacion)
VALUES (?, ?, ?, ?, ?, NOW(), NOW())`,
[
'Publicación de Prueba',
'<p>Este es el contenido de una publicación de prueba para verificar que el panel de administrador funciona correctamente.</p>',
'Esta es una publicación de prueba creada automáticamente.',
'publicado',
adminId
]
);
console.log(`✅ Publicación de prueba creada con ID: ${insertPost.insertId}\n`);
}
// Mostrar las últimas 5 publicaciones
const [posts] = await pool.execute(
`SELECT p.ID_publicaciones, p.Titulo, p.Estado, p.Fecha_creacion, a.Nombre as NombreAdmin
FROM Publicaciones p
LEFT JOIN Administrador a ON p.ID_administrador = a.ID_administrador
ORDER BY p.Fecha_creacion DESC
LIMIT 5`
);
console.log('📝 Últimas 5 publicaciones:');
console.log('─'.repeat(80));
posts.forEach((post, index) => {
console.log(`${index + 1}. ID: ${post.ID_publicaciones}`);
console.log(` Título: ${post.Titulo}`);
console.log(` Estado: ${post.Estado}`);
console.log(` Admin: ${post.NombreAdmin || 'Sin asignar'}`);
console.log(` Fecha: ${post.Fecha_creacion}`);
console.log('');
});
// Verificar estados de publicaciones
const [estadosResult] = await pool.execute(
`SELECT Estado, COUNT(*) as cantidad
FROM Publicaciones
GROUP BY Estado`
);
console.log('📈 Distribución por estados:');
console.log('─'.repeat(30));
estadosResult.forEach(estado => {
console.log(`${estado.Estado}: ${estado.cantidad} publicaciones`);
});
console.log('\n✅ Verificación completada exitosamente');
} catch (error) {
console.error('❌ Error durante la verificación:', error);
} finally {
await pool.end();
}
}
// Ejecutar el test
testAdminPosts();