UNPKG

@defra-fish/dynamics-lib

Version:

Framework to support integration with dynamics

57 lines (53 loc) 2.26 kB
import { Permit, retrieveGlobalOptionSets } from '../../index.js' let optionSetData describe('permit entity', () => { beforeAll(async () => { optionSetData = await retrieveGlobalOptionSets().cached() }) it('maps from dynamics', async () => { const permit = Permit.fromResponse( { '@odata.etag': 'W/"22639016"', defra_permitid: '9d1b34a0-0c66-e611-80dc-c4346bad0190', defra_name: '2017-20 Coarse 1 day 2 Rod Licence (Full)', defra_permittype: 910400000, defra_permitsubtype: 910400000, defra_durationnumericpart: 1, defra_durationdaymonthyearpart: 910400000, defra_numberofrods: 2, defra_availablefrom: '2017-03-31T23:00:00Z', defra_availableto: '2020-03-31T22:59:00Z', defra_isforfulfilment: false, defra_iscountersales: true, defra_recurringsupported: false, defra_advertisedprice: 6.0, defra_newadvertisedprice: 7.2, defra_dateofpricechange: '2023-04-01T00:00:00Z', defra_itemid: '42289' }, optionSetData ) const expectedFields = { id: '9d1b34a0-0c66-e611-80dc-c4346bad0190', description: '2017-20 Coarse 1 day 2 Rod Licence (Full)', permitType: expect.objectContaining({ id: 910400000, label: 'Rod Fishing Licence', description: 'Rod Fishing Licence' }), permitSubtype: expect.objectContaining({ id: 910400000, label: 'Salmon and sea trout', description: 'S' }), durationMagnitude: 1, durationDesignator: expect.objectContaining({ id: 910400000, label: 'Day(s)', description: 'D' }), numberOfRods: 2, availableFrom: '2017-03-31T23:00:00Z', availableTo: '2020-03-31T22:59:00Z', isForFulfilment: false, isCounterSales: true, isRecurringPaymentSupported: false, cost: 6, newCost: 7.2, newCostStartDate: '2023-04-01T00:00:00Z', itemId: '42289' } expect(permit).toBeInstanceOf(Permit) expect(permit).toMatchObject(expect.objectContaining({ etag: 'W/"22639016"', ...expectedFields })) expect(permit.toJSON()).toMatchObject(expect.objectContaining(expectedFields)) expect(JSON.parse(permit.toString())).toMatchObject(expect.objectContaining(expectedFields)) }) })