import AggregatedOrder from '../../../__fixtures__/orders/aggregated' import JohnDoe from '../../../__fixtures__/user' import Merchant from '../../../src/models/merchant' import MockCatalogAPI from '../../../__mocks__/apis/catalog' import MockOrderAPI from '../../../__mocks__/apis/order' import MockUserAPI from '../../../__mocks__/apis/user' import shipments, { merchant_id as id } from '../../../__fixtures__/catalog/shipments' import Server from '../../helpers/server' import UUID from 'uuid/v1' import { merge } from 'ramda' import { orderSession } from '../../../src/sessions' const options = { method: 'GET', url: '/v1/shipments' } const userId = UUID() const sessionID = UUID() describe('`GET` /v1/shipments', () => { it('should return merchant\'s shipments', async () => { try { const merchant = await Merchant.create({ id }) await merchant.sign({ id }) const headers = { 'oyst-authorization': `Oyst ${new Buffer(JSON.stringify({ m: merchant.id, t: merchant.$url.token })).toString('base64')}`, 'oyst-session': sessionID, 'oyst-user': userId } await orderSession.setData(id, { product_reference: 'fake', variation_reference: 'fake', version: 1 }) await new MockCatalogAPI() .success() .fixture({ shipments }) .findShipments(id) await new MockUserAPI().success().fixture({ user: JohnDoe }).find(userId) const res = await Server.inject(merge(options, { headers })) expect(res.statusCode).toBe(200) expect(res.result).toEqual({ shipments }) } catch (err) { expect(err).toBeNull() } }) })