Test para todo el repositorio de orders
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { describe, it } from "node:test";
|
||||
import { before, describe, it } from "node:test";
|
||||
import { OrderRepository } from "./OrderRepository.js";
|
||||
import { CreateOrderDTO } from "../domain/Order.js";
|
||||
import { postgresClient } from "../config/config.test.js";
|
||||
@@ -15,7 +15,12 @@ const order1 = <CreateOrderDTO>{
|
||||
|
||||
describe("Test OrderRepository", {}, () => {
|
||||
const orderRepo = new OrderRepository(postgresClient)
|
||||
let testId: number | undefined = undefined;
|
||||
|
||||
before(async () => {
|
||||
const result = await orderRepo.createOrder(order1)
|
||||
testId = result.data.id
|
||||
})
|
||||
|
||||
it("Insert new Order", async () => {
|
||||
const newOrder = order1
|
||||
@@ -32,4 +37,90 @@ describe("Test OrderRepository", {}, () => {
|
||||
|
||||
console.log("[T] Creada Order", typeof (result.data.start_date))
|
||||
})
|
||||
|
||||
it("Find by valid id should return the order", async () => {
|
||||
const result = await orderRepo.getOrderById({ id: testId! })
|
||||
assert(result.error == undefined)
|
||||
assert(result.data != undefined)
|
||||
|
||||
const order = result.data
|
||||
assert(order.id == testId)
|
||||
})
|
||||
|
||||
it("Find by correlation id should return a valid order", async () => {
|
||||
const result = await orderRepo.getOrderByQueueId({ correlation_id: order1.correlation_id })
|
||||
assert(result.error == undefined)
|
||||
assert(result.data != undefined)
|
||||
|
||||
const order = result.data
|
||||
assert(order.correlation_id == order1.correlation_id)
|
||||
})
|
||||
|
||||
it("Get pending orders should return a list including the test order", async () => {
|
||||
const result = await orderRepo.getPendingOrders()
|
||||
assert(result.error == undefined)
|
||||
assert(Array.isArray(result.data))
|
||||
const found = result.data.find(o => o.id === testId)
|
||||
assert(found != undefined)
|
||||
})
|
||||
|
||||
it("Update order status should change status and add history", async () => {
|
||||
const newStatus = "running"
|
||||
const reason = "Test update"
|
||||
const result = await orderRepo.updateOrder({ id: testId!, new_status: newStatus, reason: reason })
|
||||
|
||||
assert(result.error == undefined)
|
||||
assert(result.data != undefined)
|
||||
assert(result.data.status === newStatus)
|
||||
})
|
||||
|
||||
it("Finish order should set status to finished and set finish_date", async () => {
|
||||
const result = await orderRepo.finishOrder({ id: testId!, reason: "Test finish" })
|
||||
|
||||
assert(result.error == undefined)
|
||||
assert(result.data != undefined)
|
||||
assert(result.data.status === "finished")
|
||||
assert(result.data.finish_date != null)
|
||||
})
|
||||
|
||||
it("Error order (failed) should increment retry_count and set status", async () => {
|
||||
// Create another order for this test
|
||||
const order2 = { ...order1, correlation_id: "fake-error-test" }
|
||||
const createResult = await orderRepo.createOrder(order2)
|
||||
const errTestId = createResult.data.id
|
||||
|
||||
const result = await orderRepo.errorOrder({
|
||||
id: errTestId,
|
||||
status: "failed",
|
||||
reason: "Test failure",
|
||||
error: "Some error",
|
||||
stackTrace: "Some stack"
|
||||
})
|
||||
|
||||
assert(result.error == undefined)
|
||||
assert(result.data != undefined)
|
||||
assert(result.data.status === "failed")
|
||||
assert(result.data.retry_count > 0)
|
||||
assert(result.data.finish_date == null)
|
||||
})
|
||||
|
||||
it("Error order (dlx) should set finish_date", async () => {
|
||||
// Create another order for this test
|
||||
const order3 = { ...order1, correlation_id: "fake-dlx-test" }
|
||||
const createResult = await orderRepo.createOrder(order3)
|
||||
const dlxTestId = createResult.data.id
|
||||
|
||||
const result = await orderRepo.errorOrder({
|
||||
id: dlxTestId,
|
||||
status: "dlx",
|
||||
reason: "Test DLX",
|
||||
error: "Fatal error",
|
||||
stackTrace: "Fatal stack"
|
||||
})
|
||||
|
||||
assert(result.error == undefined)
|
||||
assert(result.data != undefined)
|
||||
assert(result.data.status === "dlx")
|
||||
assert(result.data.finish_date != null)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user