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
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);
|
|
});
|
|
});
|