@@ -9,7 +9,8 @@ import { OsGridRefField } from '~/src/server/plugins/engine/components/OsGridRef
99import { createComponent } from '~/src/server/plugins/engine/components/helpers/components.js'
1010import {
1111 createLowerFirstExpression ,
12- lowerFirstExpressionOptions
12+ lowerFirstExpressionOptions ,
13+ lowerFirstPreserveProperNouns
1314} from '~/src/server/plugins/engine/components/helpers/index.js'
1415import { FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
1516import definition from '~/test/form/definitions/basic.js'
@@ -145,6 +146,42 @@ describe('ComponentBase tests', () => {
145146 } )
146147} )
147148
149+ describe ( 'lowerFirstPreserveProperNouns' , ( ) => {
150+ test ( 'should preserve "National Grid" capitalisation' , ( ) => {
151+ expect ( lowerFirstPreserveProperNouns ( 'National Grid field number' ) ) . toBe (
152+ 'National Grid field number'
153+ )
154+ } )
155+
156+ test ( 'should preserve "Ordnance Survey" capitalisation' , ( ) => {
157+ expect (
158+ lowerFirstPreserveProperNouns ( 'Ordnance Survey (OS) grid reference' )
159+ ) . toBe ( 'Ordnance Survey (OS) grid reference' )
160+ } )
161+
162+ test ( 'should preserve "OS" capitalisation' , ( ) => {
163+ expect ( lowerFirstPreserveProperNouns ( 'OS grid reference' ) ) . toBe (
164+ 'OS grid reference'
165+ )
166+ } )
167+
168+ test ( 'should lowercase first character for regular text' , ( ) => {
169+ expect ( lowerFirstPreserveProperNouns ( 'Enter your name' ) ) . toBe (
170+ 'enter your name'
171+ )
172+ } )
173+
174+ test ( 'should handle text without special terms' , ( ) => {
175+ expect ( lowerFirstPreserveProperNouns ( 'Latitude and longitude' ) ) . toBe (
176+ 'latitude and longitude'
177+ )
178+ } )
179+
180+ test ( 'should handle empty string' , ( ) => {
181+ expect ( lowerFirstPreserveProperNouns ( '' ) ) . toBe ( '' )
182+ } )
183+ } )
184+
148185describe ( 'lowerFirst expression helpers' , ( ) => {
149186 test ( 'lowerFirstExpressionOptions should have lowerFirst function' , ( ) => {
150187 expect ( lowerFirstExpressionOptions ) . toHaveProperty ( 'functions' )
0 commit comments