Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions src/api/entitlements/service.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import Boom from '@hapi/boom'

import { config } from '~/src/config/index.js'
import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { getJson } from '~/src/lib/fetch.js'

const entitlementUrl = config.get('entitlementUrl')
const entitlementsEndpoint = new URL('/', entitlementUrl)
const logger = createLogger()

/**
* Fetches user scopes from the entitlements API
Expand Down
2 changes: 1 addition & 1 deletion src/api/entitlements/service.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ describe('entitlements service', () => {
}
}))
jest.doMock('~/src/helpers/logging/logger.js', () => ({
createLogger: jest.fn().mockReturnValue(mockLogger)
logger: mockLogger
}))

const fetchModule = await import('~/src/lib/fetch.js')
Expand Down
4 changes: 1 addition & 3 deletions src/api/forms/repositories/form-definition-repository.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,9 @@ import {
modifyUpdatePageFields,
removeById
} from '~/src/api/forms/repositories/helpers.js'
import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { DEFINITION_COLLECTION_NAME, db } from '~/src/mongo.js'

const logger = createLogger()

/**
* Adds a form to the Form Store
* @param {string} id - id
Expand Down
4 changes: 1 addition & 3 deletions src/api/forms/repositories/form-metadata-repository.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,11 @@ import {
MongoError,
partialAuditFields
} from '~/src/api/forms/service/shared.js'
import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { METADATA_COLLECTION_NAME, db } from '~/src/mongo.js'

export const MAX_RESULTS = 100

const logger = createLogger()

/**
* Retrieves the list of documents from the database
*/
Expand Down
4 changes: 2 additions & 2 deletions src/api/forms/repositories/form-metadata-repository.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@ jest.mock('~/src/mongo.js', () => {
})

jest.mock('~/src/helpers/logging/logger.js', () => ({
createLogger: () => ({
logger: {
error: jest.fn(),
info: jest.fn()
})
}
}))

describe('form-metadata-repository', () => {
Expand Down
4 changes: 1 addition & 3 deletions src/api/forms/repositories/form-versions-repository.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
import { getErrorMessage } from '@defra/forms-model'
import Boom from '@hapi/boom'

import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { VERSIONS_COLLECTION_NAME, db } from '~/src/mongo.js'

export const MAX_VERSIONS = 100

const logger = createLogger()

/**
* Creates a new form version in the database
* @param {FormVersionDocument} versionDocument - The form version document to create
Expand Down
4 changes: 1 addition & 3 deletions src/api/forms/repositories/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,11 @@ import * as formMetadataRepository from '~/src/api/forms/repositories/form-metad
import * as formVersionsRepository from '~/src/api/forms/repositories/form-versions-repository.js'
import { validate } from '~/src/api/forms/service/helpers/definition.js'
import { repositionPaymentAndSummary } from '~/src/api/forms/service/migration-helpers.js'
import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { DEFINITION_COLLECTION_NAME, db } from '~/src/mongo.js'

export const FORM_VERSION_METADATA_KEY = '$$__formVersion'

const logger = createLogger()

/**
* Removes a row in a MongoDB collection by its unique ID and fail if not completed.
* @param {ClientSession} session
Expand Down
4 changes: 1 addition & 3 deletions src/api/forms/repositories/secrets-repository.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@ import { getErrorMessage } from '@defra/forms-model'
import Boom from '@hapi/boom'
import { MongoServerError } from 'mongodb'

import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { SECRETS_COLLECTION_NAME, db } from '~/src/mongo.js'

export const MAX_RESULTS = 100

const logger = createLogger()

/**
* Retrieves a form secret by form id and secret name
* @param {string} formId - ID of the form
Expand Down
4 changes: 2 additions & 2 deletions src/api/forms/repositories/secrets-repository.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ const mockLoggerInfo = jest.fn()
const mockLoggerWarn = jest.fn()

jest.mock('~/src/helpers/logging/logger.js', () => ({
createLogger: jest.fn().mockReturnValue({
logger: {
// @ts-expect-error - error handling uses any type
error: (err, message) => mockLoggerError(err, message),
warn: () => mockLoggerWarn(),
info: () => mockLoggerInfo()
})
}
}))

describe('secrets-repository', () => {
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import * as formMetadata from '~/src/api/forms/repositories/form-metadata-reposi
import { findComponent } from '~/src/api/forms/repositories/helpers.js'
import { getFormDefinition } from '~/src/api/forms/service/definition.js'
import { getFormDefinitionPage } from '~/src/api/forms/service/page.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormUpdatedEvent } from '~/src/messaging/publish.js'
import { client } from '~/src/mongo.js'

Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/conditions.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FormDefinitionRequestType, getErrorMessage } from '@defra/forms-model'

import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import * as formMetadata from '~/src/api/forms/repositories/form-metadata-repository.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormUpdatedEvent } from '~/src/messaging/publish.js'
import { client } from '~/src/mongo.js'

Expand Down
7 changes: 2 additions & 5 deletions src/api/forms/service/definition.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@ import {
import { getValidationSchema } from '~/src/api/forms/service/helpers/definition.js'
import { getForm } from '~/src/api/forms/service/index.js'
import { existsFormSecret } from '~/src/api/forms/service/secrets.js'
import {
logger,
mapForm,
partialAuditFields
} from '~/src/api/forms/service/shared.js'
import { mapForm, partialAuditFields } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import {
publishDraftCreatedFromLiveEvent,
publishFormDraftDeletedEvent,
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/helpers/definition.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
import Joi from 'joi'

import { InvalidFormDefinitionError } from '~/src/api/forms/errors.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'

/**
* Determines the correct validation schema based on the form definition's schema property
Expand Down
8 changes: 8 additions & 0 deletions src/api/forms/service/helpers/definition.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ import {
validatePaymentAmount
} from '~/src/api/forms/service/helpers/definition.js'

jest.mock('~/src/helpers/logging/logger.js', () => ({
logger: {
info: jest.fn(),
warn: jest.fn(),
error: jest.fn()
}
}))

describe('definition helpers', () => {
describe('getValidationSchema', () => {
it('should return V1 schema when schema is V1', () => {
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import {
} from '~/src/api/forms/service/helpers/definition.js'
import {
MongoError,
logger,
mapForm,
partialAuditFields
} from '~/src/api/forms/service/shared.js'
Expand All @@ -25,6 +24,7 @@ import {
removeFormVersions
} from '~/src/api/forms/service/versioning.js'
import * as formTemplates from '~/src/api/forms/templates.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { getFormMetadataAuditMessages } from '~/src/messaging/mappers/form-events-bulk.js'
import {
bulkPublishEvents,
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/lists.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Boom from '@hapi/boom'

import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import * as formMetadata from '~/src/api/forms/repositories/form-metadata-repository.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormUpdatedEvent } from '~/src/messaging/publish.js'
import { saveToS3 } from '~/src/messaging/s3.js'
import { client } from '~/src/mongo.js'
Expand Down
8 changes: 8 additions & 0 deletions src/api/forms/service/migration-helpers.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ jest.mock('~/src/api/forms/service/condition-migration-helpers.js', () => ({
isConditionData: jest.fn(() => true)
}))

jest.mock('~/src/helpers/logging/logger.js', () => ({
logger: {
info: jest.fn(),
warn: jest.fn(),
error: jest.fn()
}
}))

describe('migration helpers', () => {
const summaryPageId = '449a45f6-4541-4a46-91bd-8b8931b07b50'

Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/migration.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import * as formMetadata from '~/src/api/forms/repositories/form-metadata-repository.js'
import { migrateToV2 } from '~/src/api/forms/service/migration-helpers.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormMigratedEvent } from '~/src/messaging/publish.js'
import { client } from '~/src/mongo.js'
/**
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FormDefinitionRequestType, getErrorMessage } from '@defra/forms-model'

import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import * as formMetadata from '~/src/api/forms/repositories/form-metadata-repository.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormUpdatedEvent } from '~/src/messaging/publish.js'
import { client } from '~/src/mongo.js'

Expand Down
3 changes: 2 additions & 1 deletion src/api/forms/service/page.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import {
uniquePathGate
} from '~/src/api/forms/repositories/helpers.js'
import { getFormDefinition } from '~/src/api/forms/service/definition.js'
import { SUMMARY_PAGE_ID, logger } from '~/src/api/forms/service/shared.js'
import { SUMMARY_PAGE_ID } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormUpdatedEvent } from '~/src/messaging/publish.js'
import { client } from '~/src/mongo.js'

Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/report-overview.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { StatusCodes } from 'http-status-codes'
import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import { getMetadataCursorOfAllForms } from '~/src/api/forms/repositories/form-metadata-repository.js'
import { mapMetadata } from '~/src/api/forms/service/helpers/mapper.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { client } from '~/src/mongo.js'

/**
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/report-timeline.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { isSameDay } from 'date-fns'

import { getMetadataCursorOfAllForms } from '~/src/api/forms/repositories/form-metadata-repository.js'
import { mapMetadata } from '~/src/api/forms/service/helpers/mapper.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { client } from '~/src/mongo.js'

/**
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/secrets.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { getErrorMessage } from '@defra/forms-model'
import * as formMetadata from '~/src/api/forms/repositories/form-metadata-repository.js'
import * as secretsRepository from '~/src/api/forms/repositories/secrets-repository.js'
import { encryptSecret } from '~/src/api/forms/service/helpers/crypto.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import {
publishDeletedFormSecretEvent,
publishSavedFormSecretEvent
Expand Down
2 changes: 1 addition & 1 deletion src/api/forms/service/sections.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { getErrorMessage } from '@defra/forms-model'

import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import * as formMetadata from '~/src/api/forms/repositories/form-metadata-repository.js'
import { logger } from '~/src/api/forms/service/shared.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { publishFormUpdatedEvent } from '~/src/messaging/publish.js'
import { client } from '~/src/mongo.js'

Expand Down
3 changes: 0 additions & 3 deletions src/api/forms/service/shared.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { FormStatus } from '@defra/forms-model'
import { ObjectId } from 'mongodb'

import { createLogger } from '~/src/helpers/logging/logger.js'

export const logger = createLogger()
export const defaultAuthor = {
displayName: 'Unknown',
id: '-1'
Expand Down
4 changes: 1 addition & 3 deletions src/api/forms/service/versioning.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@ import {
allocateDraftVersion,
stampFormVersion
} from '~/src/api/forms/repositories/helpers.js'
import { createLogger } from '~/src/helpers/logging/logger.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { client } from '~/src/mongo.js'

const logger = createLogger()

/**
* Wrapper function to instantiate new session and create form version
* @param {string} formId
Expand Down
4 changes: 1 addition & 3 deletions src/helpers/fail-action.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { getErrorMessage } from '@defra/forms-model'

import { createLogger } from '~/src/helpers/logging/logger.js'

const logger = createLogger()
import { logger } from '~/src/helpers/logging/logger.js'

/**
* Log and throw an error
Expand Down
6 changes: 3 additions & 3 deletions src/helpers/feedback-form/reinstate.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ jest.mock('~/src/mongo.js', () => {
jest.mock('~/src/api/forms/service/versioning.js')

jest.mock('~/src/helpers/logging/logger.js', () => ({
createLogger: () => ({
logger: {
error: jest.fn(),
info: jest.fn()
})
}
}))

describe('reinstate', () => {
Expand All @@ -55,7 +55,7 @@ describe('reinstate', () => {
.mockReturnValue(/** @type {any} */ (mockCollection))
jest.mocked(createFormVersion).mockResolvedValue(mockFormVersionDocument)
jest.doMock('~/src/helpers/logging/logger.js', () => ({
createLogger: jest.fn().mockReturnValue(mockLogger)
logger: mockLogger
}))
})

Expand Down
6 changes: 5 additions & 1 deletion src/helpers/logging/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import { loggerOptions } from '~/src/helpers/logging/logger-options.js'
/**
* Create a logger instance.
*/
export function createLogger() {
function createPinoLogger() {
return pino(loggerOptions)
}

// Singleton logger instance - pino adds 'exit' listeners to process,
// so we reuse a single instance to avoid MaxListenersExceededWarning
export const logger = createPinoLogger()
4 changes: 1 addition & 3 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ import { chdir } from 'node:process'

import { getErrorMessage } from '@defra/forms-model'

import { createLogger } from '~/src/helpers/logging/logger.js'

const logger = createLogger()
import { logger } from '~/src/helpers/logging/logger.js'

// Move working directory to build output
chdir(import.meta.dirname)
Expand Down
2 changes: 1 addition & 1 deletion src/messaging/publish-base.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { PublishCommand } from '@aws-sdk/client-sns'

import { logger } from '~/src/api/forms/service/shared.js'
import { config } from '~/src/config/index.js'
import { logger } from '~/src/helpers/logging/logger.js'
import { getSNSClient } from '~/src/messaging/sns.js'

const snsTopicArn = config.get('snsTopicArn')
Expand Down
8 changes: 7 additions & 1 deletion src/messaging/publish-base.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@ jest.mock('~/src/config/index.js', () => {
awsRegion: 'eu-west-2',
snsEndpoint: 'http://localhost',
snsTopicArn: 'arn:aws:sns:eu-west-2:000000000000:forms_manager_events',
publishAuditEvents: true
publishAuditEvents: true,
log: {
enabled: true,
redact: ['req', 'res', 'responseTime'],
format: 'pino-pretty',
level: 'debug'
}
}
return {
config: {
Expand Down
4 changes: 2 additions & 2 deletions src/plugins/auth/auth.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ const mockActualTestWarnFn = jest.fn()
const mockActualTestInfoFn = jest.fn()

jest.mock('~/src/helpers/logging/logger.js', () => ({
createLogger: jest.fn().mockReturnValue({
logger: {
error: mockActualTestErrorFn,
warn: mockActualTestWarnFn,
info: mockActualTestInfoFn
})
}
}))

jest.mock('~/src/config/index.js', () => ({
Expand Down
Loading
Loading