diff --git a/services/app-api/prisma/migrations/20231113040740_add_statutory_regulatory_attestation/migration.sql b/services/app-api/prisma/migrations/20231113040740_add_statutory_regulatory_attestation/migration.sql
new file mode 100644
index 0000000000..c718b645a3
--- /dev/null
+++ b/services/app-api/prisma/migrations/20231113040740_add_statutory_regulatory_attestation/migration.sql
@@ -0,0 +1,6 @@
+BEGIN;
+
+-- AlterTable
+ALTER TABLE "ContractRevisionTable" ADD COLUMN "statutoryRegulatoryAttestation" BOOLEAN;
+
+COMMIT;
diff --git a/services/app-api/prisma/schema.prisma b/services/app-api/prisma/schema.prisma
index 3f89e14ca5..9cae39f028 100644
--- a/services/app-api/prisma/schema.prisma
+++ b/services/app-api/prisma/schema.prisma
@@ -115,6 +115,7 @@ model ContractRevisionTable {
modifiedLengthOfContract Boolean?
modifiedNonRiskPaymentArrangements Boolean?
inLieuServicesAndSettings Boolean?
+ statutoryRegulatoryAttestation Boolean?
}
model RateRevisionTable {
diff --git a/services/app-api/src/domain-models/contractAndRates/convertContractWithRatesToHPP.ts b/services/app-api/src/domain-models/contractAndRates/convertContractWithRatesToHPP.ts
index dacdbee7db..40d6f0b1b3 100644
--- a/services/app-api/src/domain-models/contractAndRates/convertContractWithRatesToHPP.ts
+++ b/services/app-api/src/domain-models/contractAndRates/convertContractWithRatesToHPP.ts
@@ -231,6 +231,8 @@ function convertContractWithRatesToFormData(
contractRev.formData.modifiedNonRiskPaymentArrangements,
},
},
+ statutoryRegulatoryAttestation:
+ contractRev.formData.statutoryRegulatoryAttestation,
rateInfos,
}
diff --git a/services/app-api/src/domain-models/contractAndRates/formDataTypes.ts b/services/app-api/src/domain-models/contractAndRates/formDataTypes.ts
index 630aa73b28..ec52c86414 100644
--- a/services/app-api/src/domain-models/contractAndRates/formDataTypes.ts
+++ b/services/app-api/src/domain-models/contractAndRates/formDataTypes.ts
@@ -64,6 +64,7 @@ const contractFormDataSchema = z.object({
modifiedNetworkAdequacyStandards: z.boolean().optional(),
modifiedLengthOfContract: z.boolean().optional(),
modifiedNonRiskPaymentArrangements: z.boolean().optional(),
+ statutoryRegulatoryAttestation: z.boolean().optional(),
})
const rateFormDataSchema = z.object({
diff --git a/services/app-api/src/postgres/contractAndRates/prismaSharedContractRateHelpers.ts b/services/app-api/src/postgres/contractAndRates/prismaSharedContractRateHelpers.ts
index 18ed03cb70..41496233f6 100644
--- a/services/app-api/src/postgres/contractAndRates/prismaSharedContractRateHelpers.ts
+++ b/services/app-api/src/postgres/contractAndRates/prismaSharedContractRateHelpers.ts
@@ -339,6 +339,8 @@ function contractFormDataToDomainModel(
contractRevision.modifiedNonRiskPaymentArrangements ?? undefined,
inLieuServicesAndSettings:
contractRevision.inLieuServicesAndSettings ?? undefined,
+ statutoryRegulatoryAttestation:
+ contractRevision.statutoryRegulatoryAttestation ?? undefined,
}
}
diff --git a/services/app-api/src/postgres/contractAndRates/unlockContract.ts b/services/app-api/src/postgres/contractAndRates/unlockContract.ts
index 2628919594..2cda27d7d1 100644
--- a/services/app-api/src/postgres/contractAndRates/unlockContract.ts
+++ b/services/app-api/src/postgres/contractAndRates/unlockContract.ts
@@ -141,6 +141,8 @@ async function unlockContract(
currentRev.modifiedLengthOfContract,
modifiedNonRiskPaymentArrangements:
currentRev.modifiedNonRiskPaymentArrangements,
+ statutoryRegulatoryAttestation:
+ currentRev.statutoryRegulatoryAttestation,
contractDocuments: {
create: currentRev.contractDocuments.map((d) => ({
diff --git a/services/app-api/src/postgres/contractAndRates/updateDraftContractWithRates.ts b/services/app-api/src/postgres/contractAndRates/updateDraftContractWithRates.ts
index 77b0092ee6..4e11935a89 100644
--- a/services/app-api/src/postgres/contractAndRates/updateDraftContractWithRates.ts
+++ b/services/app-api/src/postgres/contractAndRates/updateDraftContractWithRates.ts
@@ -130,6 +130,7 @@ async function updateDraftContractWithRates(
modifiedLengthOfContract,
modifiedNonRiskPaymentArrangements,
inLieuServicesAndSettings,
+ statutoryRegulatoryAttestation,
} = formData
try {
@@ -504,6 +505,9 @@ async function updateDraftContractWithRates(
modifiedNonRiskPaymentArrangements: nullify(
modifiedNonRiskPaymentArrangements
),
+ statutoryRegulatoryAttestation: nullify(
+ statutoryRegulatoryAttestation
+ ),
draftRates: {
disconnect: updateRates?.disconnectRates
? updateRates.disconnectRates.map((rate) => ({
diff --git a/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.test.ts b/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.test.ts
index ac886eecd2..8904376bec 100644
--- a/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.test.ts
+++ b/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.test.ts
@@ -57,10 +57,12 @@ describe.each(flagValueTestParameters)(
`Tests $testName`,
({ flagName, flagValue }) => {
const cmsUser = testCMSUser()
- const mockLDService = testLDService({ [flagName]: flagValue })
+ const mockLDService = testLDService({
+ [flagName]: flagValue,
+ })
afterEach(() => {
- jest.clearAllMocks()
+ jest.restoreAllMocks()
})
it('returns a StateSubmission if complete', async () => {
const server = await constructTestPostgresServer({
@@ -1252,5 +1254,74 @@ describe.each(flagValueTestParameters)(
)
}, 20000)
})
+
+ describe('Feature flagged 4348 attestation question test', () => {
+ const ldService = testLDService({
+ ...mockLDService,
+ '438-attestation': true,
+ })
+
+ it('errors when contract 4348 attestation question is undefined', async () => {
+ const server = await constructTestPostgresServer({
+ ldService: ldService,
+ })
+
+ // setup
+ const initialPkg = await createAndUpdateTestHealthPlanPackage(
+ server,
+ {
+ statutoryRegulatoryAttestation: undefined,
+ }
+ )
+ const draft = latestFormData(initialPkg)
+ const draftID = draft.id
+
+ await new Promise((resolve) => setTimeout(resolve, 2000))
+
+ // submit
+ const submitResult = await server.executeOperation({
+ query: SUBMIT_HEALTH_PLAN_PACKAGE,
+ variables: {
+ input: {
+ pkgID: draftID,
+ },
+ },
+ })
+
+ expect(submitResult.errors).toBeDefined()
+ expect(submitResult.errors?.[0].extensions?.message).toBe(
+ 'formData is missing required contract fields'
+ )
+ }, 20000)
+ it('successfully submits when contract 4348 attestation question is valid', async () => {
+ const server = await constructTestPostgresServer({
+ ldService: ldService,
+ })
+
+ // setup
+ const initialPkg = await createAndUpdateTestHealthPlanPackage(
+ server,
+ {
+ statutoryRegulatoryAttestation: false,
+ }
+ )
+ const draft = latestFormData(initialPkg)
+ const draftID = draft.id
+
+ await new Promise((resolve) => setTimeout(resolve, 2000))
+
+ // submit
+ const submitResult = await server.executeOperation({
+ query: SUBMIT_HEALTH_PLAN_PACKAGE,
+ variables: {
+ input: {
+ pkgID: draftID,
+ },
+ },
+ })
+
+ expect(submitResult.errors).toBeUndefined()
+ }, 20000)
+ })
}
)
diff --git a/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.ts b/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.ts
index b74e363735..c3cbab5fb7 100644
--- a/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.ts
+++ b/services/app-api/src/resolvers/healthPlanPackage/submitHealthPlanPackage.ts
@@ -36,7 +36,10 @@ import type {
HealthPlanFormDataType,
LockedHealthPlanFormDataType,
} from '../../../../app-web/src/common-code/healthPlanFormDataType'
-import type { LDService } from '../../launchDarkly/launchDarkly'
+import type {
+ FeatureFlagSettings,
+ LDService,
+} from '../../launchDarkly/launchDarkly'
import {
convertContractWithRatesToFormData,
convertContractWithRatesToUnlockedHPP,
@@ -106,7 +109,8 @@ const validateStatusAndUpdateInfo = (
// This strategy (returning a different type from validation) is taken from the
// "parse, don't validate" article: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
export function parseAndSubmit(
- draft: HealthPlanFormDataType
+ draft: HealthPlanFormDataType,
+ featureFlag: FeatureFlagSettings
): LockedHealthPlanFormDataType | SubmissionError {
// Remove fields from edits on irrelevant logic branches
// - CONTRACT_ONLY submission type should not contain any CONTRACT_AND_RATE rates data.
@@ -125,10 +129,22 @@ export function parseAndSubmit(
submittedAt: new Date(),
}
- if (isValidAndCurrentLockedHealthPlanFormData(maybeStateSubmission))
+ // Check for valid attestation. Returns true if flag is off.
+ const isValid438Attestation = !featureFlag['438-attestation']
+ ? true
+ : Boolean(featureFlag['438-attestation']) &&
+ draft.statutoryRegulatoryAttestation !== undefined
+
+ if (
+ isValidAndCurrentLockedHealthPlanFormData(maybeStateSubmission) &&
+ isValid438Attestation
+ )
return maybeStateSubmission
else if (
- !hasValidContract(maybeStateSubmission as LockedHealthPlanFormDataType)
+ !hasValidContract(
+ maybeStateSubmission as LockedHealthPlanFormDataType
+ ) ||
+ !isValid438Attestation
) {
return {
code: 'INCOMPLETE',
@@ -184,6 +200,10 @@ export function submitHealthPlanPackageResolver(
context,
'rates-db-refactor'
)
+ const contract438Attestation = await launchDarkly.getFeatureFlag(
+ context,
+ '438-attestation'
+ )
const { user, span } = context
const { submittedReason, pkgID } = input
setResolverDetailsOnActiveSpan('submitHealthPlanPackage', user, span)
@@ -307,7 +327,9 @@ export function submitHealthPlanPackageResolver(
contractRevisionID = contractWithHistory.draftRevision.id
// Final clean + check of data before submit - parse to state submission
- const maybeLocked = parseAndSubmit(initialFormData)
+ const maybeLocked = parseAndSubmit(initialFormData, {
+ '438-attestation': contract438Attestation,
+ })
if (isSubmissionError(maybeLocked)) {
const errMessage = maybeLocked.message
@@ -530,7 +552,9 @@ export function submitHealthPlanPackageResolver(
contractRevisionID = initialPackage.revisions[0].id
// Final clean + check of data before submit - parse to state submission
- const maybeLocked = parseAndSubmit(initialFormData)
+ const maybeLocked = parseAndSubmit(initialFormData, {
+ '438-attestation': contract438Attestation,
+ })
if (isSubmissionError(maybeLocked)) {
const errMessage = maybeLocked.message
diff --git a/services/app-api/src/resolvers/healthPlanPackage/updateHealthPlanFormData.test.ts b/services/app-api/src/resolvers/healthPlanPackage/updateHealthPlanFormData.test.ts
index b957e1cf29..bd4be402af 100644
--- a/services/app-api/src/resolvers/healthPlanPackage/updateHealthPlanFormData.test.ts
+++ b/services/app-api/src/resolvers/healthPlanPackage/updateHealthPlanFormData.test.ts
@@ -101,6 +101,7 @@ describe.each(flagValueTestParameters)(
modifiedNonRiskPaymentArrangements: undefined,
},
},
+ statutoryRegulatoryAttestation: true,
rateInfos: [],
})
diff --git a/services/app-api/src/testHelpers/contractAndRates/contractHelpers.ts b/services/app-api/src/testHelpers/contractAndRates/contractHelpers.ts
index baf1843361..58386dbf4d 100644
--- a/services/app-api/src/testHelpers/contractAndRates/contractHelpers.ts
+++ b/services/app-api/src/testHelpers/contractAndRates/contractHelpers.ts
@@ -206,6 +206,7 @@ const createContractRevision = (
inLieuServicesAndSettings: null,
rateRevisions: [],
draftRates: [],
+ statutoryRegulatoryAttestation: null,
...revision,
}
}
diff --git a/services/app-api/src/testHelpers/emailerHelpers.ts b/services/app-api/src/testHelpers/emailerHelpers.ts
index bb98df4211..13a6242c98 100644
--- a/services/app-api/src/testHelpers/emailerHelpers.ts
+++ b/services/app-api/src/testHelpers/emailerHelpers.ts
@@ -337,6 +337,7 @@ const mockContractAndRatesFormData = (
],
addtlActuaryCommunicationPreference: 'OACT_TO_ACTUARY',
...submissionPartial,
+ statutoryRegulatoryAttestation: false,
}
}
@@ -520,6 +521,7 @@ const mockContractOnlyFormData = (
},
],
addtlActuaryContacts: [],
+ statutoryRegulatoryAttestation: false,
...submissionPartial,
}
}
@@ -606,6 +608,7 @@ const mockContractAmendmentFormData = (
},
],
addtlActuaryCommunicationPreference: 'OACT_TO_ACTUARY',
+ statutoryRegulatoryAttestation: false,
...submissionPartial,
}
}
diff --git a/services/app-api/src/testHelpers/gqlHelpers.ts b/services/app-api/src/testHelpers/gqlHelpers.ts
index f28158f113..725dcdce2d 100644
--- a/services/app-api/src/testHelpers/gqlHelpers.ts
+++ b/services/app-api/src/testHelpers/gqlHelpers.ts
@@ -299,6 +299,7 @@ const createAndUpdateTestHealthPlanPackage = async (
modifiedNonRiskPaymentArrangements: true,
},
}
+ draft.statutoryRegulatoryAttestation = true
Object.assign(draft, partialUpdates)
diff --git a/services/app-proto/src/health_plan_form_data.proto b/services/app-proto/src/health_plan_form_data.proto
index dbd9883393..126eb993c5 100644
--- a/services/app-proto/src/health_plan_form_data.proto
+++ b/services/app-proto/src/health_plan_form_data.proto
@@ -81,6 +81,7 @@ message ContractInfo {
repeated FederalAuthority federal_authorities = 5;
repeated Document contract_documents = 6;
optional ContractExecutionStatus contract_execution_status = 7;
+ optional bool statutory_regulatory_attestation = 8;
// Rates Refactor: No need for nested contract amendment info
optional ContractAmendmentInfo contract_amendment_info = 50;
diff --git a/services/app-web/src/common-code/featureFlags/flags.ts b/services/app-web/src/common-code/featureFlags/flags.ts
index b25c088eda..e9f1f25051 100644
--- a/services/app-web/src/common-code/featureFlags/flags.ts
+++ b/services/app-web/src/common-code/featureFlags/flags.ts
@@ -76,6 +76,10 @@ const featureFlags = {
flag: 'rate-filters',
defaultValue: false,
},
+ CONTRACT_438_ATTESTATION: {
+ flag: '438-attestation',
+ defaultValue: false,
+ },
/**
* Used in testing to simulate errors in fetching flag value.
* This flag does not exist in LaunchDarkly dashboard so fetching this will return the defaultValue.
diff --git a/services/app-web/src/common-code/healthPlanFormDataMocks/healthPlanFormData.ts b/services/app-web/src/common-code/healthPlanFormDataMocks/healthPlanFormData.ts
index 29d323ad48..451e982f85 100644
--- a/services/app-web/src/common-code/healthPlanFormDataMocks/healthPlanFormData.ts
+++ b/services/app-web/src/common-code/healthPlanFormDataMocks/healthPlanFormData.ts
@@ -763,6 +763,7 @@ function basicLockedHealthPlanFormData(): LockedHealthPlanFormDataType {
programIDs: [mockMNState().programs[0].id],
submissionType: 'CONTRACT_ONLY',
riskBasedContract: false,
+ statutoryRegulatoryAttestation: false,
submissionDescription: 'A real submission',
documents: [],
contractType: 'BASE',
diff --git a/services/app-web/src/common-code/healthPlanFormDataType/LockedHealthPlanFormDataType.ts b/services/app-web/src/common-code/healthPlanFormDataType/LockedHealthPlanFormDataType.ts
index 93ecad5dfc..a51771cd02 100644
--- a/services/app-web/src/common-code/healthPlanFormDataType/LockedHealthPlanFormDataType.ts
+++ b/services/app-web/src/common-code/healthPlanFormDataType/LockedHealthPlanFormDataType.ts
@@ -42,4 +42,5 @@ export type LockedHealthPlanFormDataType = {
stateContacts: StateContact[]
addtlActuaryContacts: ActuaryContact[]
addtlActuaryCommunicationPreference?: ActuaryCommunicationType
+ statutoryRegulatoryAttestation: boolean
}
diff --git a/services/app-web/src/common-code/healthPlanFormDataType/UnlockedHealthPlanFormDataType.ts b/services/app-web/src/common-code/healthPlanFormDataType/UnlockedHealthPlanFormDataType.ts
index 437ef73644..a55547ad02 100644
--- a/services/app-web/src/common-code/healthPlanFormDataType/UnlockedHealthPlanFormDataType.ts
+++ b/services/app-web/src/common-code/healthPlanFormDataType/UnlockedHealthPlanFormDataType.ts
@@ -118,6 +118,7 @@ type UnlockedHealthPlanFormDataType = {
federalAuthorities: FederalAuthority[]
contractAmendmentInfo?: UnlockedContractAmendmentInfo
rateInfos: RateInfoType[]
+ statutoryRegulatoryAttestation?: boolean
}
export type {
diff --git a/services/app-web/src/common-code/proto/healthPlanFormDataProto/toDomain.ts b/services/app-web/src/common-code/proto/healthPlanFormDataProto/toDomain.ts
index 7afddfecdf..7be8b9534b 100644
--- a/services/app-web/src/common-code/proto/healthPlanFormDataProto/toDomain.ts
+++ b/services/app-web/src/common-code/proto/healthPlanFormDataProto/toDomain.ts
@@ -543,6 +543,8 @@ const toDomain = (
stateContacts: cleanedStateContacts,
addtlActuaryContacts: parseActuaryContacts(addtlActuaryContacts),
documents: parseProtoDocuments(formDataMessage.documents),
+ statutoryRegulatoryAttestation:
+ contractInfo?.statutoryRegulatoryAttestation ?? undefined,
}
// Now that we've gotten things into our combined draft & state domain format.
diff --git a/services/app-web/src/common-code/proto/healthPlanFormDataProto/toProtoBuffer.ts b/services/app-web/src/common-code/proto/healthPlanFormDataProto/toProtoBuffer.ts
index e333fb2bbd..917314defb 100644
--- a/services/app-web/src/common-code/proto/healthPlanFormDataProto/toProtoBuffer.ts
+++ b/services/app-web/src/common-code/proto/healthPlanFormDataProto/toProtoBuffer.ts
@@ -65,7 +65,9 @@ function domainEnumStringToProtoString(
return protoEnumString
}
-const domainDocsToProtoDocs = (domainDocs:SubmissionDocument[]): mcreviewproto.IDocument[] | null | undefined => {
+const domainDocsToProtoDocs = (
+ domainDocs: SubmissionDocument[]
+): mcreviewproto.IDocument[] | null | undefined => {
return domainDocs.map((doc) => ({
s3Url: doc.s3URL,
name: doc.name,
@@ -190,8 +192,12 @@ const toProtoBuffer = (
mcreviewproto.FederalAuthority,
domainData.federalAuthorities
),
- contractDocuments: domainDocsToProtoDocs(domainData.contractDocuments),
+ contractDocuments: domainDocsToProtoDocs(
+ domainData.contractDocuments
+ ),
contractAmendmentInfo: contractAmendmentInfo,
+ statutoryRegulatoryAttestation:
+ domainData.statutoryRegulatoryAttestation,
},
rateInfos:
domainData.rateInfos && domainData.rateInfos.length
@@ -215,8 +221,12 @@ const toProtoBuffer = (
rateDateCertified: domainDateToProtoDate(
rateInfo.rateDateCertified
),
- rateDocuments: domainDocsToProtoDocs(rateInfo.rateDocuments),
- supportingDocuments: domainDocsToProtoDocs(rateInfo.supportingDocuments),
+ rateDocuments: domainDocsToProtoDocs(
+ rateInfo.rateDocuments
+ ),
+ supportingDocuments: domainDocsToProtoDocs(
+ rateInfo.supportingDocuments
+ ),
rateCertificationName: generateRateName(
domainData,
rateInfo,
diff --git a/services/app-web/src/common-code/proto/healthPlanFormDataProto/zodSchemas.ts b/services/app-web/src/common-code/proto/healthPlanFormDataProto/zodSchemas.ts
index 0b10fde7f1..4746556002 100644
--- a/services/app-web/src/common-code/proto/healthPlanFormDataProto/zodSchemas.ts
+++ b/services/app-web/src/common-code/proto/healthPlanFormDataProto/zodSchemas.ts
@@ -38,7 +38,7 @@ const submissionDocumentSchema = z.object({
.optional()
),
sha256: z.string().optional(),
- id: z.string().optional() // doesn't exist for newly created
+ id: z.string().optional(), // doesn't exist for newly created
})
const contractAmendmentInfoSchema = z.object({
@@ -168,6 +168,7 @@ const unlockedHealthPlanFormDataZodSchema = z.object({
federalAuthorities: z.array(federalAuthoritySchema),
contractAmendmentInfo: contractAmendmentInfoSchema.optional(),
rateInfos: z.array(rateInfosTypeSchema),
+ statutoryRegulatoryAttestation: z.boolean().optional(),
})
/*
diff --git a/services/app-web/src/components/SubmissionSummarySection/ContractDetailsSummarySection/ContractDetailsSummarySection.test.tsx b/services/app-web/src/components/SubmissionSummarySection/ContractDetailsSummarySection/ContractDetailsSummarySection.test.tsx
index 3d223b520e..97e33b3f3b 100644
--- a/services/app-web/src/components/SubmissionSummarySection/ContractDetailsSummarySection/ContractDetailsSummarySection.test.tsx
+++ b/services/app-web/src/components/SubmissionSummarySection/ContractDetailsSummarySection/ContractDetailsSummarySection.test.tsx
@@ -1,5 +1,8 @@
import { screen, waitFor, within } from '@testing-library/react'
-import { renderWithProviders } from '../../../testHelpers/jestHelpers'
+import {
+ ldUseClientSpy,
+ renderWithProviders,
+} from '../../../testHelpers/jestHelpers'
import { ContractDetailsSummarySection } from './ContractDetailsSummarySection'
import {
fetchCurrentUserMock,
@@ -8,8 +11,19 @@ import {
} from '../../../testHelpers/apolloMocks'
import { UnlockedHealthPlanFormDataType } from '../../../common-code/healthPlanFormDataType'
import { testS3Client } from '../../../testHelpers/s3Helpers'
+import {
+ StatutoryRegulatoryAttestation,
+ StatutoryRegulatoryAttestationQuestion,
+} from '../../../constants/statutoryRegulatoryAttestation'
describe('ContractDetailsSummarySection', () => {
+ afterEach(() => {
+ jest.restoreAllMocks()
+ })
+ const defaultApolloMocks = {
+ mocks: [fetchCurrentUserMock({ statusCode: 200 })],
+ }
+
it('can render draft submission without errors (review and submit behavior)', async () => {
const testSubmission = {
...mockContractAndRatesDraft(),
@@ -40,9 +54,7 @@ describe('ContractDetailsSummarySection', () => {
submissionName="MN-PMAP-0001"
/>,
{
- apolloProvider: {
- mocks: [fetchCurrentUserMock({ statusCode: 200 })],
- },
+ apolloProvider: defaultApolloMocks,
}
)
@@ -76,7 +88,10 @@ describe('ContractDetailsSummarySection', () => {
status: 'SUBMITTED',
}}
submissionName="MN-PMAP-0001"
- />
+ />,
+ {
+ apolloProvider: defaultApolloMocks,
+ }
)
expect(
@@ -101,14 +116,27 @@ describe('ContractDetailsSummarySection', () => {
})
it('can render all contract details fields', () => {
+ ldUseClientSpy({ '438-attestation': true })
+ const submission = mockContractAndRatesDraft({
+ statutoryRegulatoryAttestation: true,
+ })
renderWithProviders(