diff --git a/src/server/plugins/engine/components/helpers/components.test.ts b/src/server/plugins/engine/components/helpers/components.test.ts
index f588e613f..6ee7153c0 100644
--- a/src/server/plugins/engine/components/helpers/components.test.ts
+++ b/src/server/plugins/engine/components/helpers/components.test.ts
@@ -4,6 +4,7 @@ import {
type EastingNorthingFieldComponent,
type GeospatialFieldComponent,
type LatLongFieldComponent,
+ type MultilineTextFieldComponent,
type NationalGridFieldNumberFieldComponent,
type OsGridRefFieldComponent
} from '@defra/forms-model'
@@ -18,6 +19,7 @@ import {
EastingNorthingField,
GeospatialField,
LatLongField,
+ MultilineTextField,
NationalGridFieldNumberField,
OsGridRefField
} from '~/src/server/plugins/engine/components/index.js'
@@ -442,3 +444,37 @@ describe('Location field formatting', () => {
})
})
})
+
+describe('MultilineTextField formatting', () => {
+ let field: MultilineTextField
+
+ beforeEach(() => {
+ const model = new FormModel(definition, {
+ basePath: 'test'
+ })
+
+ const def: MultilineTextFieldComponent = {
+ type: ComponentType.MultilineTextField,
+ name: 'myComponent',
+ title: 'Your answer',
+ options: {},
+ schema: {}
+ }
+
+ field = new MultilineTextField(def, { model })
+ })
+
+ it('escapes block quote markers in the check answers summary', () => {
+ const state = { myComponent: '> first\r\n>\r\n> second' }
+
+ const answer = getAnswer(field, state, translator, { format: 'summary' })
+ expect(answer).toBe('> first
>
> second
')
+ })
+
+ it('escapes block quote markers in emails', () => {
+ const state = { myComponent: '> first\r\n>\r\n> second' }
+
+ const answer = getAnswer(field, state, translator, { format: 'email' })
+ expect(answer).toBe('\\> first\n\\>\n\\> second\n')
+ })
+})
diff --git a/src/server/plugins/engine/components/helpers/index.ts b/src/server/plugins/engine/components/helpers/index.ts
index 6450118b1..41a01aa5f 100644
--- a/src/server/plugins/engine/components/helpers/index.ts
+++ b/src/server/plugins/engine/components/helpers/index.ts
@@ -21,6 +21,7 @@ export function escapeMarkdown(answer: string) {
'(',
')',
'#',
+ '>',
'+',
'-',
'.',