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.

90 lines
2.0 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 order_products', async () => {
const result = await orderStore.addProduct(testOrderProduct)
expect(result).toEqual(testOrderProduct)
})
afterAll(async () => {
await productStore.delete(1)
await userStore.delete(1)
})
});