Skip to content

Commit a4b58b4

Browse files
authored
fix(DF-922): remove legacy version metadata fallback from adapter formatter (#364)
Remove getVersionMetadata and the formMetadata.versions fallback path that was producing fabricated versionNumber values for pre-versioning forms. Version metadata now resolves solely from $$__formVersion embedded in the form definition by the manager. Also removes the now-dead submittedVersionNumber from FormContext and versionNumber from FormModel, which only existed to feed the deleted fallback.
1 parent 88dbcbb commit a4b58b4

File tree

7 files changed

+7
-467
lines changed

7 files changed

+7
-467
lines changed

src/server/plugins/engine/beta/form-context.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ describe('getFormModel helper', () => {
183183
definition,
184184
{
185185
basePath: slug,
186-
versionNumber: 17,
187186
ordnanceSurveyApiKey: undefined,
188187
formId: metadata.id
189188
},
@@ -288,7 +287,6 @@ describe('resolveFormModel helper', () => {
288287
definition,
289288
expect.objectContaining({
290289
basePath: 'forms/preview/live/tb-origin',
291-
versionNumber: 9,
292290
ordnanceSurveyApiKey: 'os-api-key',
293291
formId: metadata.id
294292
}),

src/server/plugins/engine/beta/form-context.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import { isEqual } from 'date-fns'
55
import { PREVIEW_PATH_PREFIX } from '~/src/server/constants.js'
66
import {
77
checkEmailAddressForLiveFormSubmission,
8-
getCacheService,
9-
getFormVersion
8+
getCacheService
109
} from '~/src/server/plugins/engine/helpers.js'
1110
import { FormModel } from '~/src/server/plugins/engine/models/index.js'
1211
import { type PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js'
@@ -65,15 +64,12 @@ export async function getFormModel(
6564
)
6665
}
6766

68-
const versionNumber = getFormVersion(definition)?.versionNumber
69-
7067
return new FormModel(
7168
definition,
7269
{
7370
basePath:
7471
options.basePath ??
7572
buildBasePath(options.routePrefix ?? '', slug, formState, isPreview),
76-
versionNumber,
7773
ordnanceSurveyApiKey: options.ordnanceSurveyApiKey,
7874
formId: options.formId ?? metadata.id
7975
},
@@ -182,15 +178,12 @@ export async function resolveFormModel(
182178
const routePrefix =
183179
options.routePrefix ?? server.realm.modifiers.route.prefix
184180

185-
const versionNumber = getFormVersion(definition)?.versionNumber
186-
187181
const model = new FormModel(
188182
definition,
189183
{
190184
basePath:
191185
options.basePath ??
192186
buildBasePath(routePrefix, slug, formState, isPreview),
193-
versionNumber,
194187
ordnanceSurveyApiKey: options.ordnanceSurveyApiKey,
195188
formId: options.formId ?? metadata.id
196189
},

src/server/plugins/engine/models/FormModel.test.ts

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -141,21 +141,6 @@ describe('FormModel', () => {
141141
expect(model.schemaVersion).toBe(SchemaVersion.V1)
142142
})
143143

144-
it('sets versionNumber from options', () => {
145-
const model = new FormModel(definition, {
146-
basePath: 'test',
147-
versionNumber: 42
148-
})
149-
150-
expect(model.versionNumber).toBe(42)
151-
})
152-
153-
it('sets versionNumber to undefined when not provided', () => {
154-
const model = new FormModel(definition, { basePath: 'test' })
155-
156-
expect(model.versionNumber).toBeUndefined()
157-
})
158-
159144
it.each([
160145
{
161146
input: undefined,
@@ -344,55 +329,6 @@ describe('FormModel', () => {
344329
)
345330
})
346331

347-
it('includes submittedVersionNumber in context when versionNumber is set', () => {
348-
const formModel = new FormModel(fieldsRequiredDefinition, {
349-
basePath: '/components',
350-
versionNumber: 123
351-
})
352-
353-
const state = {
354-
$$__referenceNumber: 'foobar'
355-
}
356-
const pageUrl = new URL('http://example.com/components/fields-required')
357-
358-
const request: FormContextRequest = buildFormContextRequest({
359-
method: 'get',
360-
query: {},
361-
path: pageUrl.pathname,
362-
params: { path: 'components', slug: 'fields-required' },
363-
url: pageUrl,
364-
app: { model: formModel }
365-
})
366-
367-
const context = formModel.getFormContext(request, state)
368-
369-
expect(context.submittedVersionNumber).toBe(123)
370-
})
371-
372-
it('sets submittedVersionNumber to undefined when versionNumber is not set', () => {
373-
const formModel = new FormModel(fieldsRequiredDefinition, {
374-
basePath: '/components'
375-
})
376-
377-
const state = {
378-
$$__referenceNumber: 'foobar'
379-
}
380-
const pageUrl = new URL('http://example.com/components/fields-required')
381-
382-
const request: FormContextRequest = buildFormContextRequest({
383-
method: 'get',
384-
query: {},
385-
path: pageUrl.pathname,
386-
params: { path: 'components', slug: 'fields-required' },
387-
url: pageUrl,
388-
app: { model: formModel }
389-
})
390-
391-
const context = formModel.getFormContext(request, state)
392-
393-
expect(context.submittedVersionNumber).toBeUndefined()
394-
})
395-
396332
it('redirects to the page if the list field (radio) is invalidated due to list item conditions', () => {
397333
const formModel = new FormModel(conditionsListDefinition, {
398334
basePath: '/conditional-list-items'

src/server/plugins/engine/models/FormModel.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ export class FormModel {
7878
formId: string
7979
values: FormDefinition
8080
basePath: string
81-
versionNumber?: number
8281
ordnanceSurveyApiKey?: string
8382
conditions: Partial<Record<string, ExecutableCondition>>
8483
pages: PageControllerClass[]
@@ -100,7 +99,6 @@ export class FormModel {
10099
def: typeof this.def,
101100
options: {
102101
basePath: string
103-
versionNumber?: number
104102
ordnanceSurveyApiKey?: string
105103
formId?: string
106104
},
@@ -158,7 +156,6 @@ export class FormModel {
158156
this.formId = options.formId ?? ''
159157
this.values = result.value
160158
this.basePath = options.basePath
161-
this.versionNumber = options.versionNumber
162159
this.ordnanceSurveyApiKey = options.ordnanceSurveyApiKey
163160
this.conditions = {}
164161
this.services = services
@@ -362,8 +359,7 @@ export class FormModel {
362359
componentDefMap: this.componentDefMap,
363360
pageMap: this.pageMap,
364361
componentMap: this.componentMap,
365-
referenceNumber: getReferenceNumber(state),
366-
submittedVersionNumber: this.versionNumber
362+
referenceNumber: getReferenceNumber(state)
367363
}
368364

369365
// Validate current page

0 commit comments

Comments
 (0)