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.
98 lines
2.3 KiB
TypeScript
98 lines
2.3 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)
|
|
})
|
|
|
|
|
|
}); |