test-typeorm.js•3.33 kB
import { initializeDatabase } from "./src/database/connection.js";
import { ProductsDB } from "./src/database/products.js";
async function testTypeORM() {
try {
console.log("Iniciando teste do TypeORM...");
// Inicializar o banco de dados
await initializeDatabase();
console.log("✅ Banco de dados inicializado com sucesso!");
// Testar criação de produto
console.log("\n🧪 Testando criação de produto...");
const novoProduto = {
name: "Produto Teste TypeORM",
description: "Produto criado para testar a migração",
amount: 10,
averageCost: 25.5,
unit: "UN",
active: true,
companyId: null, // Incluindo explicitamente
createdBy: null,
updatedBy: null,
validity: null,
};
const resultadoCriacao = await ProductsDB.createProduct(novoProduto);
if (resultadoCriacao.success) {
console.log("✅ Produto criado com sucesso:", resultadoCriacao.data.id);
// Testar busca por ID
console.log("\n🧪 Testando busca por ID...");
const produtoEncontrado = await ProductsDB.getProductById(resultadoCriacao.data.id);
if (produtoEncontrado.success) {
console.log("✅ Produto encontrado por ID:", produtoEncontrado.data.name);
} else {
console.log("❌ Erro ao buscar produto por ID:", produtoEncontrado.error);
}
// Testar busca por nome
console.log("\n🧪 Testando busca por nome...");
const produtosPorNome = await ProductsDB.searchProductsByName("TypeORM");
if (produtosPorNome.success) {
console.log("✅ Produtos encontrados por nome:", produtosPorNome.data.length);
} else {
console.log("❌ Erro ao buscar produtos por nome:", produtosPorNome.error);
}
// Testar atualização
console.log("\n🧪 Testando atualização...");
const resultadoAtualizacao = await ProductsDB.updateProduct(resultadoCriacao.data.id, {
amount: 15,
description: "Produto atualizado via TypeORM",
});
if (resultadoAtualizacao.success) {
console.log("✅ Produto atualizado com sucesso!");
} else {
console.log("❌ Erro ao atualizar produto:", resultadoAtualizacao.error);
}
// Testar listagem de todos os produtos
console.log("\n🧪 Testando listagem de todos os produtos...");
const todosProdutos = await ProductsDB.getAllProducts();
if (todosProdutos.success) {
console.log("✅ Total de produtos encontrados:", todosProdutos.data.length);
} else {
console.log("❌ Erro ao listar produtos:", todosProdutos.error);
}
} else {
console.log("❌ Erro ao criar produto:", resultadoCriacao.error);
}
console.log("\n🎉 Teste do TypeORM concluído com sucesso!");
} catch (error) {
console.error("❌ Erro durante o teste:", error);
} finally {
process.exit(0);
}
}
// Executar o teste
testTypeORM();