UNPKG

bluelinky2

Version:

An unofficial nodejs API wrapper for Hyundai bluelink

153 lines (134 loc) 3.57 kB
/* eslint-disable */ import got from 'got'; import { AmericanController } from '../src/controllers/american.controller'; import { EuropeanController } from '../src/controllers/european.controller'; import { CanadianController } from '../src/controllers/canadian.controller'; jest.mock('got'); const getController = region => { const referenceMap = { US: AmericanController, EU: EuropeanController, CA: CanadianController, }; const controller = new referenceMap[region]({ username: 'testuser@gmail.com', password: 'test', region: 'US', brand: 'hyundai', autoLogin: true, pin: '1234', vin: '4444444444444', vehicleId: undefined, }); return controller; }; describe('AmericanController', () => { const controller = getController('US'); it('call login and get valid response', async () => { (got as any).mockReturnValueOnce({ body: { access_token: 'jest', refresh_token: 'test', }, statusCode: 200, }); expect(await controller.login()).toEqual('login good'); }); it('call getVehicles and check length', async () => { (got as any).mockReturnValueOnce({ body: JSON.stringify({ enrolledVehicleDetails: [ { vehicleDetails: [ { nickname: 'Jest is best', vin: '444', regDate: 'test', brandIndicator: 'H', regId: '123123', gen: '2', name: 'Car', }, ], }, ], }), statusCode: 200, }); expect(await controller.getVehicles()).toHaveLength(1); }); }); describe('EuropeanController', () => { it('call getVehicles and check length', async () => { const controller = getController('EU'); controller.session.accessToken = 'MockToken'; (got as any).mockReturnValueOnce({ body: {stamps: ['stamp1', 'stamp2'], generated: new Date().toISOString(), steps: 20000}, statusCode: 200, }); (got as any).mockReturnValueOnce({ body: { resMsg: { vehicles: [ { nickname: 'Jest is best', vin: '444', regDate: 'test', brandIndicator: 'H', regId: '123123', gen: '2', name: 'Car', id: '12345', }, ], }, }, statusCode: 200, }); (got as any).mockReturnValueOnce({ body: { resMsg: { vinInfo: [ { basic: { modelYear: '2019', vin: '5555', id: '123456', }, }, ], }, }, statusCode: 200, }); const vehicles = await controller.getVehicles(); expect(vehicles).toHaveLength(1); }); }); describe('CanadianController', () => { it('call getVehicles and check length', async () => { const controller = getController('CA'); (got as any).mockReturnValueOnce({ body: { responseHeader: { responseCode: 0, }, result: { vehicles: [ { nickname: 'Jest is best', vin: '444', regDate: 'test', brandIndicator: 'H', regId: '123123', gen: '2', name: 'Car', }, ], }, }, statusCode: 200, }); expect(await controller.getVehicles()).toHaveLength(1); }); });