Skip to content

Commit 0ad8508

Browse files
authored
Fix SonarCloud quality gate failures (#43)
* Fix SonarCloud quality gate failures https://eaflood.atlassian.net/browse/NI-47 * Provide coverage for Lambda function schemas
1 parent 5ffe1d1 commit 0ad8508

File tree

6 files changed

+25
-29
lines changed

6 files changed

+25
-29
lines changed

lib/functions/getMessage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict'
22

33
const service = require('../helpers/service')
4-
const eventSchema = require('../helpers/schemas').getMessageEventSchema
4+
const eventSchema = require('../schemas/getMessageEventSchema')
55

66
module.exports.getMessage = async (event) => {
77
const response = {

lib/functions/processMessage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const moment = require('moment')
55
const AWSConfig = require('../../config/config.json').aws
66
const service = require('../helpers/service')
77
const Message = require('../models/message')
8-
const eventSchema = require('../helpers/schemas.js').processMessageEventSchema
8+
const eventSchema = require('../schemas/processMessageEventSchema')
99

1010
module.exports.processMessage = async (event) => {
1111
const response = {

lib/helpers/schemas.js

-17
This file was deleted.

lib/schemas/getMessageEventSchema.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'use strict'
2+
3+
const Joi = require('joi')
4+
5+
module.exports = Joi.object({
6+
pathParameters: Joi.object().required().keys({
7+
id: Joi.string().hex().required()
8+
})
9+
})
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use strict'
2+
3+
const Joi = require('joi')
4+
5+
module.exports = Joi.object({
6+
bodyXml: Joi.string().required()
7+
})

test/schemas.js

+7-10
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ const Lab = require('@hapi/lab')
55
const lab = exports.lab = Lab.script()
66
const Code = require('@hapi/code')
77
const configSchema = require('../config/schema')
8-
const schemas = require('../lib/helpers/schemas')
9-
const { getMessageEventSchema, processMessageEventSchema } = require('../lib/helpers/schemas')
8+
const getMessageEventSchema = require('../lib/schemas/getMessageEventSchema')
9+
const processMessageEventSchema = require('../lib/schemas/processMessageEventSchema')
1010

1111
lab.experiment('schemas', () => {
1212
lab.test('configSchema', () => {
@@ -56,31 +56,28 @@ lab.experiment('schemas', () => {
5656

5757
Code.expect(validationResult.error).to.not.be.null()
5858
})
59-
lab.test('module exports the schemas correctly and validate their behavior', () => {
60-
Code.expect(schemas).to.be.an.object()
61-
Code.expect(schemas).to.include(['getMessageEventSchema', 'processMessageEventSchema'])
62-
59+
lab.test('modules export the schemas correctly and validate their behavior', () => {
6360
// Test valid data for getMessageEventSchema
6461
const validGetMessageData = { pathParameters: { id: 'a1b2c3d4' } }
65-
const getMessageValidationResult = schemas.getMessageEventSchema.validate(validGetMessageData)
62+
const getMessageValidationResult = getMessageEventSchema.validate(validGetMessageData)
6663
Code.expect(getMessageValidationResult.error).to.not.exist()
6764
Code.expect(getMessageValidationResult.value).to.equal(validGetMessageData)
6865

6966
// Test invalid data for getMessageEventSchema
7067
const invalidGetMessageData = { pathParameters: { id: 'invalid' } }
71-
const invalidGetMessageResult = schemas.getMessageEventSchema.validate(invalidGetMessageData)
68+
const invalidGetMessageResult = getMessageEventSchema.validate(invalidGetMessageData)
7269
Code.expect(invalidGetMessageResult.error).to.not.be.null()
7370
Code.expect(invalidGetMessageResult.error.details[0].message).to.contain('must only contain hexadecimal characters')
7471

7572
// Test valid data for processMessageEventSchema
7673
const validProcessMessageData = { bodyXml: '<xml />' }
77-
const processMessageValidationResult = schemas.processMessageEventSchema.validate(validProcessMessageData)
74+
const processMessageValidationResult = processMessageEventSchema.validate(validProcessMessageData)
7875
Code.expect(processMessageValidationResult.error).to.not.exist()
7976
Code.expect(processMessageValidationResult.value).to.equal(validProcessMessageData)
8077

8178
// Test invalid data for processMessageEventSchema
8279
const invalidProcessMessageData = { bodyXml: 123 }
83-
const invalidProcessMessageResult = schemas.processMessageEventSchema.validate(invalidProcessMessageData)
80+
const invalidProcessMessageResult = processMessageEventSchema.validate(invalidProcessMessageData)
8481
Code.expect(invalidProcessMessageResult.error).to.not.be.null()
8582
Code.expect(invalidProcessMessageResult.error.details[0].message).to.contain('must be a string')
8683
})

0 commit comments

Comments
 (0)