Adding APIkey and order tests
parent
92e4d7c047
commit
113bfe05cc
|
@ -100,6 +100,44 @@
|
|||
"isAdmin" : true
|
||||
}
|
||||
],
|
||||
"orders": [
|
||||
{
|
||||
"orderPaymentId" : "ch_1ElPw5L7TBqK1az83hbmOFuJ",
|
||||
"orderPaymentGateway" : "Stripe",
|
||||
"orderPaymentMessage" : "Payment complete.",
|
||||
"orderTotal" : 310,
|
||||
"orderEmail" : "test@test.com",
|
||||
"orderFirstname" : "Testy",
|
||||
"orderLastname" : "Cles",
|
||||
"orderAddr1" : "1 test street",
|
||||
"orderAddr2" : "testvile",
|
||||
"orderCountry" : "Netherlands",
|
||||
"orderState" : "SA",
|
||||
"orderPostcode" : "2000TW",
|
||||
"orderPhoneNumber" : "123456789",
|
||||
"orderComment" : "",
|
||||
"orderStatus" : "Paid",
|
||||
"orderProducts" : []
|
||||
},
|
||||
{
|
||||
"orderPaymentId" : "ch_1ElPw5L7TBqK1az83hbmOFuJ",
|
||||
"orderPaymentGateway" : "Stripe",
|
||||
"orderPaymentMessage" : "Payment complete.",
|
||||
"orderTotal" : 310,
|
||||
"orderEmail" : "test@test.com",
|
||||
"orderFirstname" : "Testy",
|
||||
"orderLastname" : "Cles",
|
||||
"orderAddr1" : "1 test street",
|
||||
"orderAddr2" : "testvile",
|
||||
"orderCountry" : "Netherlands",
|
||||
"orderState" : "SA",
|
||||
"orderPostcode" : "2000TW",
|
||||
"orderPhoneNumber" : "123456789",
|
||||
"orderComment" : "",
|
||||
"orderStatus" : "Declined",
|
||||
"orderProducts" : []
|
||||
}
|
||||
],
|
||||
"menu": {
|
||||
"items": [
|
||||
{
|
||||
|
|
70
test/test.js
70
test/test.js
|
@ -1,5 +1,6 @@
|
|||
const test = require('ava');
|
||||
const fs = require('fs');
|
||||
const _ = require('lodash');
|
||||
const app = require('../app');
|
||||
const common = require('../lib/common');
|
||||
const session = require('supertest-session');
|
||||
|
@ -14,22 +15,22 @@ let config;
|
|||
let products;
|
||||
let customers;
|
||||
let users;
|
||||
let orders;
|
||||
let request = null;
|
||||
|
||||
function setup(db, app){
|
||||
function setup(db){
|
||||
return Promise.all([
|
||||
db.cart.remove({}, {}),
|
||||
db.users.remove({}, {}),
|
||||
db.customers.remove({}, {}),
|
||||
db.products.remove({}, {}),
|
||||
db.menu.remove({}, {})
|
||||
db.orders.remove({}, {})
|
||||
])
|
||||
.then(() => {
|
||||
return Promise.all([
|
||||
db.users.insertMany(jsonData.users),
|
||||
db.customers.insertMany(jsonData.customers),
|
||||
db.products.insertMany(common.fixProductDates(jsonData.products)),
|
||||
db.menu.insertOne(jsonData.menu)
|
||||
db.products.insertMany(common.fixProductDates(jsonData.products))
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
@ -44,13 +45,33 @@ test.before(async () => {
|
|||
config = app.config;
|
||||
db = app.db;
|
||||
|
||||
await setup(db, app);
|
||||
await setup(db);
|
||||
await common.runIndexing(app);
|
||||
|
||||
// Get some data from DB to use in compares
|
||||
products = await db.products.find({}).toArray();
|
||||
customers = await db.customers.find({}).toArray();
|
||||
users = await db.users.find({}).toArray();
|
||||
|
||||
// Insert orders using product ID's
|
||||
_(jsonData.orders).each(async (order) => {
|
||||
order.orderProducts.push({
|
||||
productId: products[0]._id,
|
||||
title: products[0].productTitle,
|
||||
quantity: 1,
|
||||
totalItemPrice: products[0].productPrice,
|
||||
options: {
|
||||
size: '7.5'
|
||||
},
|
||||
productImage: products[0].productImage,
|
||||
productComment: null
|
||||
});
|
||||
order.orderDate = new Date();
|
||||
await db.orders.insert(order);
|
||||
});
|
||||
|
||||
// Get orders
|
||||
orders = await db.orders.find({}).toArray();
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
@ -78,6 +99,16 @@ test.serial('[Success] User Login', async t => {
|
|||
t.deepEqual(res.body.message, 'Login successful');
|
||||
});
|
||||
|
||||
test.serial('[Success] Create API key', async t => {
|
||||
const res = await request
|
||||
.post('/admin/createApiKey')
|
||||
.expect(200);
|
||||
|
||||
users[0].apiKey = res.body.apiKey;
|
||||
t.deepEqual(res.body.message, 'API Key generated');
|
||||
t.deepEqual(res.body.apiKey.length, 24);
|
||||
});
|
||||
|
||||
test.serial('[Fail] Incorrect user password', async t => {
|
||||
const res = await request
|
||||
.post('/admin/login_action')
|
||||
|
@ -214,6 +245,35 @@ test.serial('[Success] Create a customer', async t => {
|
|||
t.deepEqual(res.body.message, 'Successfully logged in');
|
||||
});
|
||||
|
||||
test.serial('[Success] Get orders', async t => {
|
||||
const res = await request
|
||||
.get('/admin/orders')
|
||||
.set('apiKey', users[0].apiKey)
|
||||
.expect(200);
|
||||
|
||||
// Check the returned order length
|
||||
t.deepEqual(orders.length, res.body.orders.length);
|
||||
});
|
||||
|
||||
test.serial('[Fail] Try get orderes with a bogus apiKey', async t => {
|
||||
const res = await request
|
||||
.get('/admin/orders')
|
||||
.set('apiKey', '123456789012345678901234')
|
||||
.expect(400);
|
||||
|
||||
t.deepEqual(res.body.message, 'Access denied');
|
||||
});
|
||||
|
||||
test.serial('[Success] Get orders by <Paid> status', async t => {
|
||||
const res = await request
|
||||
.get('/admin/orders/bystatus/Paid')
|
||||
.set('apiKey', users[0].apiKey)
|
||||
.expect(200);
|
||||
|
||||
// Check the returned order length
|
||||
t.deepEqual(1, res.body.orders.length);
|
||||
});
|
||||
|
||||
test.serial('[Fail] Try create a duplicate customer', async t => {
|
||||
const customer = {
|
||||
email: 'sarah.jones@test.com',
|
||||
|
|
Loading…
Reference in New Issue