import Merchant from '../../../../src/models/merchant' import MockUserAPI from '../../../../__mocks__/apis/user' import Server from '../../../helpers/server' import UUID from 'uuid/v1' import { merge } from 'ramda' import { orderSession } from '../../../../src/sessions' import user from '../../../../__fixtures__/user' const userId = user.id const cardId = user.card.id const sessionId = UUID() const mockUserApi = new MockUserAPI() const options = { method: 'POST', url: `/v1/users/cards/${cardId}/set_primary` } describe('Set user card as primary', () => { it('should set a primary card', async () => { const id = UUID() 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' }) await orderSession.setData(id, { phone: '+33628437618' }, 'phone') mockUserApi.success().fixture({ user }).setPrimaryCard(userId, cardId) mockUserApi.success().fixture({ user }).find(userId) try { const { statusCode, result } = await Server.inject(merge(options, { headers })) expect(statusCode).toEqual(200) expect(result.user.card).toEqual(user.card) } catch (err) { console.error({ err }) expect(true).toBe(false) } }) })