@builton/core-sdk
Version:
Builton JavaScript SDK.
108 lines (96 loc) • 3.35 kB
JavaScript
const assert = require('assert');
const Builton = require('../../src/main.js');
const nock = require('nock');
const orderFile = require('../fetchmock/order.json');
const ordersFile = require('../fetchmock/orders.json');
const userFile = require('../fetchmock/user.json');
const orderPostBody = require('../fetchmock/orderPostBody.json');
const endpoint = 'https://example.com';
const bearerToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
const sa = new Builton({ apiKey: 'dummy', bearerToken, endpoint });
describe('Order', () => {
it('Should return a list of Orders', (done) => {
nock(endpoint)
.get('/orders')
.query({ size: 100, page: 0 })
.reply(200, ordersFile);
sa.orders.get({}, (err, orders) => {
if (err) throw err;
assert.ok(Array.isArray(orders.current));
done();
});
});
it('Should return a list of Orders as json', (done) => {
nock(endpoint)
.get('/orders')
.query({ size: 100, page: 0 })
.reply(200, ordersFile);
sa.orders.get({ json: true }, (err, orders) => {
if (err) throw err;
assert.ok(Array.isArray(orders.current));
assert.ok(orders.current[0].constructor.name !== 'Order');
done();
});
});
it('Should set one Order', () => {
const order = sa.orders.set('id1');
assert.equal(order.id, 'id1');
});
it('Should set a list of Orders', () => {
const orders = sa.orders.set(['id1', 'id2', 'id3']);
assert.equal(orders[0].id, 'id1');
assert.equal(orders[1].id, 'id2');
assert.equal(orders[2].id, 'id3');
});
it('Should return an order', (done) => {
nock(endpoint)
.get('/orders/:orderId:')
.reply(200, orderFile);
sa.orders.set(':orderId:').get({}, (err, order) => {
if (err) throw err;
assert.ok(order.constructor.name === 'Order');
assert.ok((order.human_id === 'Y8RDPJ'));
done();
});
});
it('Should update an order', (done) => {
nock(endpoint)
.put('/orders/:orderId:')
.reply(200, orderFile);
sa.orders.set(':orderId:').update({ delivery_status: 'ACCEPTED' }, {}, (err, order) => {
if (err) throw err;
assert.ok(order.constructor.name === 'Order');
assert.ok((order.human_id === 'Y8RDPJ'));
done();
});
});
it('Should post an order', (done) => {
nock(endpoint)
.post('/orders')
.reply(200, orderFile);
sa.orders.create(orderPostBody, {}, (err, order) => {
if (err) throw err;
assert.ok(order.constructor.name === 'Order');
assert.ok((order.human_id === 'Y8RDPJ'));
done();
});
});
it('Should return the user for an order', (done) => {
nock(endpoint)
.get('/orders/:orderId:')
.reply(200, orderFile);
sa.orders.set(':orderId:').get({}, (err, order) => {
if (err) throw err;
assert.ok(order.constructor.name === 'Order');
nock(endpoint)
.get('/users/591061fd8d95100013f0f3ca')
.reply(200, userFile);
sa.users.set(order.user).get({}, (err2, user) => {
if (err2) throw err2;
assert.ok(user.constructor.name === 'User');
assert.ok((user.first_name === orderFile.user.first_name));
done();
});
});
});
});