@defra-fish/gafl-webapp-service 1.76.0 → 1.77.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defra-fish/gafl-webapp-service",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.77.0-rc.2",
|
|
4
4
|
"description": "The websales frontend for the GAFL service",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"prepare": "gulp --gulpfile build/gulpfile.cjs"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@defra-fish/business-rules-lib": "1.
|
|
40
|
-
"@defra-fish/connectors-lib": "1.
|
|
39
|
+
"@defra-fish/business-rules-lib": "1.77.0-rc.2",
|
|
40
|
+
"@defra-fish/connectors-lib": "1.77.0-rc.2",
|
|
41
41
|
"@defra/hapi-gapi": "2.0.0",
|
|
42
42
|
"@hapi/boom": "9.1.2",
|
|
43
43
|
"@hapi/catbox-redis": "6.0.2",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"./gafl-jest-matchers.js"
|
|
80
80
|
]
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "d473c2103570546d9096bffc5bf3ba13909e6a3e"
|
|
83
83
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { salesApi } from '@defra-fish/connectors-lib'
|
|
2
|
+
import { licenceDetailsService } from '../licence-details-service'
|
|
3
|
+
jest.mock('@defra-fish/connectors-lib', () => ({
|
|
4
|
+
salesApi: {
|
|
5
|
+
getLicenceDetails: jest.fn(() => ({ licences: [] }))
|
|
6
|
+
}
|
|
7
|
+
}))
|
|
8
|
+
|
|
9
|
+
const getParams = () => ({
|
|
10
|
+
firstName: 'Fishy',
|
|
11
|
+
lastName: 'McFishface',
|
|
12
|
+
birthDate: '2000-01-01',
|
|
13
|
+
postcode: 'TE1 1ST'
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
describe('licence-details-service', () => {
|
|
17
|
+
it('calls getLicenceDetails with the correct params', async () => {
|
|
18
|
+
const params = getParams()
|
|
19
|
+
await licenceDetailsService(params)
|
|
20
|
+
|
|
21
|
+
expect(salesApi.getLicenceDetails).toHaveBeenCalledWith(params)
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it.each([
|
|
25
|
+
['there are no matches', { licences: [] }],
|
|
26
|
+
['there is one match', { licences: [{ referenceNumber: 'AAAAAA-1' }] }],
|
|
27
|
+
['there are multiple matches', { licences: [{ referenceNumber: 'AAAAAA-1' }, { referenceNumber: 'AAAAAA-2' }] }]
|
|
28
|
+
])('returns the correct result when %s', async (_description, responseBody) => {
|
|
29
|
+
salesApi.getLicenceDetails.mockResolvedValueOnce(responseBody)
|
|
30
|
+
|
|
31
|
+
const result = await licenceDetailsService(getParams())
|
|
32
|
+
expect(result).toBe(responseBody.licences)
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it('returns an empty array when there is no licences object in the result', async () => {
|
|
36
|
+
salesApi.getLicenceDetails.mockResolvedValueOnce({})
|
|
37
|
+
|
|
38
|
+
const result = await licenceDetailsService(getParams())
|
|
39
|
+
expect(result).toEqual([])
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
describe('if getLicenceDetails throws an error', () => {
|
|
43
|
+
it('catches the error', async () => {
|
|
44
|
+
const error = new Error('Something went wrong')
|
|
45
|
+
salesApi.getLicenceDetails.mockRejectedValueOnce(error)
|
|
46
|
+
|
|
47
|
+
await expect(licenceDetailsService(getParams())).resolves.toBeDefined()
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
it('calls console.error with the details', async () => {
|
|
51
|
+
const error = new Error('Something went wrong')
|
|
52
|
+
const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(jest.fn())
|
|
53
|
+
salesApi.getLicenceDetails.mockRejectedValueOnce(error)
|
|
54
|
+
const params = getParams()
|
|
55
|
+
|
|
56
|
+
await licenceDetailsService(params)
|
|
57
|
+
|
|
58
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(`Error retrieving licence details for ${JSON.stringify(params)}`, error)
|
|
59
|
+
consoleErrorSpy.mockRestore()
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
it('returns an empty array', async () => {
|
|
63
|
+
const error = new Error('Something went wrong')
|
|
64
|
+
salesApi.getLicenceDetails.mockRejectedValueOnce(error)
|
|
65
|
+
|
|
66
|
+
const results = await licenceDetailsService(getParams())
|
|
67
|
+
|
|
68
|
+
expect(results).toEqual([])
|
|
69
|
+
})
|
|
70
|
+
})
|
|
71
|
+
})
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { salesApi } from '@defra-fish/connectors-lib'
|
|
2
|
+
|
|
3
|
+
const matchingLicences = async contactInfo => {
|
|
4
|
+
try {
|
|
5
|
+
return await salesApi.getLicenceDetails(contactInfo)
|
|
6
|
+
} catch (err) {
|
|
7
|
+
console.error(`Error retrieving licence details for ${JSON.stringify(contactInfo)}`, err)
|
|
8
|
+
return {}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const licenceDetailsService = async ({ firstName, lastName, birthDate, postcode }) => {
|
|
13
|
+
const response = await matchingLicences({ firstName, lastName, birthDate, postcode })
|
|
14
|
+
return response?.licences || []
|
|
15
|
+
}
|