You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.1 KiB
TypeScript

import { User, UserStore } from "../../models/user";
import { Product, ProductStore } from "../../models/product";
import { Order, OrderProduct, OrderStore } from "../../models/order";
const orderStore = new OrderStore();
const userStore = new UserStore();
const productStore = new ProductStore();
const testProduct: Product = {
id: 2,
name: "1984",
price: 5,
};
const testUser: User = {
id: 2,
firstname: "John",
lastname: "Doe",
username: "Jd",
password: "password",
};
const testOrder: Order = {
id: 1,
status: "active",
user_id: 2,
};
const testOrderProduct: OrderProduct = {
id: 1,
quantity: 5,
order_id: 1,
product_id: 2,
};
describe("Order model", () => {
beforeAll(async () => {
await productStore.create(testProduct);
await userStore.create(testUser);
});
console.log("ORDER");
it("Should have an index method", () => {
expect(orderStore.index).toBeDefined();
});
it("Should have a read method", () => {
expect(orderStore.read).toBeDefined;
});
it("Should have a create method", () => {
expect(orderStore.create).toBeDefined;
});
it("Should have a update method", () => {
expect(orderStore.addProduct).toBeDefined;
});
it("Create method should add a new order", async () => {
const result = await orderStore.create(testOrder);
expect(result).toEqual(testOrder);
});
it("Index method should return a list of orders", async () => {
const result = await orderStore.index();
expect(result[0]).toEqual(testOrder);
});
it("Read method should return a order", async () => {
const result = await orderStore.read(2);
expect(result).toEqual(testOrder);
});
it("addProduct should add a new product to order", async () => {
const result = await orderStore.addProduct(testOrderProduct);
expect(result).toEqual(testOrderProduct);
});
it("deleteProduct should delete product from order", async () => {
const result = await orderStore.deleteProduct(1);
const checkorder = await orderStore.index();
expect(checkorder).toEqual([]);
});
afterAll(async () => {
await productStore.delete(1);
await userStore.delete(1);
});
});