Skip to content

feat(Save in Progress): Add logic to add drafts for initial submissions to all form types#1832

Draft
jdinh8124 wants to merge 133 commits intomainfrom
spa-drafts
Draft

feat(Save in Progress): Add logic to add drafts for initial submissions to all form types#1832
jdinh8124 wants to merge 133 commits intomainfrom
spa-drafts

Conversation

@jdinh8124
Copy link
Copy Markdown
Collaborator

@jdinh8124 jdinh8124 commented Feb 27, 2026

🎫 Linked Ticket

https://jiraent.cms.gov/browse/OY2-37081

💬 Description / Notes

A state OneMAC user should be able to "Save" a draft package, and submit a completed package. This feature adds this functionality

@macpro-snyk-service-account
Copy link
Copy Markdown
Collaborator

macpro-snyk-service-account commented Feb 27, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 27, 2026

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 84.28% (🎯 90%)
⬆️ +0.52%
8099 / 9609
🔵 Statements 84.17% (🎯 90%)
⬆️ +0.55%
8700 / 10336
🔵 Functions 82.44% (🎯 85%)
⬆️ +0.85%
2169 / 2631
🔵 Branches 74.28% (🎯 80%)
⬆️ +1.99%
5029 / 6770
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
lib/attachment-archive/draft-package.ts 72.91% 55.35% 88.88% 72.91% 41-46, 56, 71-75, 80, 91, 96, 113, 139
lib/attachment-archive/storage.ts 70.83%
🟰 ±0%
38.46%
🟰 ±0%
100%
🟰 ±0%
70.83%
🟰 ±0%
14, 42, 51, 67, 112-116
lib/attachment-archive/types.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/deleteDraft.ts 80.55% 72.72% 100% 80% 33-37, 56-59, 65-68, 74-77, 122
lib/lambda/deleteIndex.ts 100%
🟰 ±0%
71.42%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/getAttachmentArchive.ts 92.1%
⬇️ -1.23%
88.23%
⬆️ +13.23%
100%
🟰 ±0%
92.1%
⬇️ -1.23%
24-28, 44-50, 98-101
lib/lambda/getAttachmentUrl.ts 93.85%
⬇️ -1.24%
78.82%
⬆️ +1.24%
91.66%
⬆️ +0.36%
93.85%
⬇️ -1.24%
238-248, 261-266, 319-322, 327-330, 494, 540
lib/lambda/getPackageActions.ts 93.54%
⬇️ -6.46%
76.66%
⬇️ -23.34%
100%
🟰 ±0%
93.54%
⬇️ -6.46%
36-39, 78-81
lib/lambda/item.ts 100%
🟰 ±0%
90.9%
⬇️ -9.10%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/itemExists.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/rebuildAttachmentArchives.ts 88.23%
⬆️ +88.23%
81.81%
⬆️ +81.81%
100%
⬆️ +100.00%
88.23%
⬆️ +88.23%
12, 33
lib/lambda/saveDraft.ts 84.61% 80.91% 100% 85.29% 85, 88, 118-122, 131-134, 147-150, 185-188, 192-195, 214-217, 367, 388-414
lib/lambda/search.ts 97.61%
⬇️ -2.39%
81.08%
⬇️ -2.25%
100%
🟰 ±0%
97.56%
⬇️ -2.44%
71
lib/lambda/setupIndex.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/sinkMainProcessors.ts 85.47%
⬆️ +0.82%
83.33%
⬇️ -0.56%
96.87%
⬆️ +0.87%
85.28%
⬆️ +0.71%
64, 72, 183-184, 236-243, 247-257, 261-270, 274-280, 292-298, 346, 416, 485, 526, 611, 660-662, 666-667
lib/lambda/middleware/fetchPackage.ts 100%
🟰 ±0%
92.3%
⬆️ +4.80%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/middleware/handlers.ts 100%
🟰 ±0%
66.66%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/lambda/middleware/hasPermissions.ts 95.83%
⬆️ +0.38%
96.15%
⬆️ +1.15%
100%
🟰 ±0%
95.45%
⬆️ +0.45%
25
lib/lambda/submit/submitSplitSPA.ts 92.85%
🟰 ±0%
72.22%
🟰 ±0%
100%
🟰 ±0%
92.85%
🟰 ±0%
32, 112-115
lib/lambda/user-management/submitRoleRequests.ts 95.65%
🟰 ±0%
82.85%
🟰 ±0%
100%
🟰 ±0%
95.65%
🟰 ±0%
40
lib/lambda/user-management/updateUserRoles.ts 100%
🟰 ±0%
75%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/libs/opensearch-lib.ts 86.61%
⬇️ -0.27%
70%
⬆️ +1.19%
90.9%
⬆️ +0.43%
86.4%
⬇️ -0.26%
27, 60-62, 100-113, 141, 235-236, 250, 288
lib/libs/api/auth/user.ts 93.93%
⬆️ +0.09%
85.29%
🟰 ±0%
100%
🟰 ±0%
93.84%
🟰 ±0%
53, 107, 131, 164-167
lib/libs/api/package/getPackage.ts 85.71%
⬇️ -14.29%
100%
🟰 ±0%
66.66%
⬇️ -33.34%
85.71%
⬇️ -14.29%
23
lib/libs/api/package/itemExists.ts 86.66%
⬆️ +15.24%
100%
🟰 ±0%
100%
🟰 ±0%
84.61%
⬆️ +13.19%
35-36
lib/packages/shared-types/statusHelper.ts 100%
🟰 ±0%
100%
🟰 ±0%
50%
🟰 ±0%
100%
🟰 ±0%
lib/packages/shared-types/events/temporary-extension.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
lib/packages/shared-types/opensearch/main/index.ts 100%
🟰 ±0%
100%
🟰 ±0%
66.66%
🟰 ±0%
100%
🟰 ±0%
lib/packages/shared-utils/draft-attachments.ts 91.89% 89.47% 100% 90% 35, 60, 65
lib/packages/shared-utils/feature-flags.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/api/deleteDraft.ts 20% 100% 0% 20% 6-12
react-app/src/api/getAttachmentArchive.ts 100%
🟰 ±0%
71.42%
⬆️ +4.76%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/api/getAttachmentUrl.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/api/itemExists.ts 93.33%
⬇️ -6.67%
76.47%
⬇️ -23.53%
100%
🟰 ±0%
93.33%
⬇️ -6.67%
35
react-app/src/api/saveDraft.ts 60% 100% 100% 60% 26-29
react-app/src/api/useGetItem.ts 88.09%
⬇️ -11.91%
94.44%
⬇️ -5.56%
100%
🟰 ±0%
88.09%
⬇️ -11.91%
56, 92-93, 106-107
react-app/src/components/ActionForm/index.tsx 85.89%
⬇️ -3.50%
80.6%
⬆️ +4.68%
83.72%
⬇️ -0.89%
86.57%
⬇️ -2.49%
131, 250-251, 315, 328, 352-356, 432-433, 479, 509, 516, 524-526, 530-531, 541, 574, 576, 591, 617-618, 628-629, 641, 763-795, 823-824, 849, 960-1001
react-app/src/components/Opensearch/main/useOpensearch.ts 95%
⬇️ -5.00%
83.33%
⬇️ -4.17%
90%
⬇️ -10.00%
95%
⬇️ -5.00%
99, 103
react-app/src/components/Opensearch/main/Filtering/Drawer/Filterable/DateRange.tsx 100%
🟰 ±0%
90.47%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/components/Opensearch/main/Filtering/Export/export.utils.ts 84.61% 100% 85.71% 83.33% 29-34
react-app/src/components/Opensearch/main/Filtering/Export/index.tsx 92%
⬆️ +1.10%
83.33%
⬆️ +2.08%
80%
🟰 ±0%
92%
⬇️ -1.54%
61, 84
react-app/src/components/Opensearch/main/Table/index.tsx 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/components/Profile/Information/EditableGroupAndDivision.tsx 76.1%
⬇️ -0.21%
63.09%
🟰 ±0%
60.71%
🟰 ±0%
79.56%
⬇️ -0.22%
41, 43, 51, 56, 68, 86, 97, 151-152, 157-158, 183-184, 282-310, 315, 319, 323
react-app/src/components/RHF/Field.tsx 100%
🟰 ±0%
80%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/components/RHF/FieldArray.tsx 100%
🟰 ±0%
87.5%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/features/dashboard/Lists/renderCells/index.tsx 91.3%
⬇️ -8.70%
91.17%
⬇️ -8.83%
86.66%
⬇️ -13.34%
90.9%
⬇️ -9.10%
136-141, 153, 169-170
react-app/src/features/dashboard/Lists/spas/index.tsx 97.5%
⬆️ +0.14%
98.07%
⬆️ +0.16%
100%
🟰 ±0%
97.22%
⬆️ +0.17%
60
react-app/src/features/dashboard/Lists/waivers/index.tsx 97.61%
⬆️ +0.11%
97.95%
⬆️ +0.18%
100%
🟰 ±0%
97.36%
⬆️ +0.14%
66
react-app/src/features/forms/new-submission/Chip.tsx 80%
🟰 ±0%
100%
🟰 ±0%
75%
🟰 ±0%
80%
🟰 ±0%
87
react-app/src/features/forms/new-submission/ChipDetails.tsx 40%
🟰 ±0%
33.33%
🟰 ±0%
37.5%
🟰 ±0%
40%
🟰 ±0%
64, 117-200
react-app/src/features/forms/new-submission/Medicaid.tsx 75%
⬇️ -4.16%
100%
⬆️ +33.34%
80%
⬆️ +13.34%
75%
⬇️ -11.36%
110
react-app/src/features/forms/waiver/app-k/index.tsx 80%
🟰 ±0%
66.66%
🟰 ±0%
75%
🟰 ±0%
80%
🟰 ±0%
128
react-app/src/features/forms/waiver/capitated/Amendment.tsx 80%
🟰 ±0%
71.42%
🟰 ±0%
80%
🟰 ±0%
80%
🟰 ±0%
133
react-app/src/features/forms/waiver/capitated/Initial.tsx 80%
🟰 ±0%
50%
🟰 ±0%
75%
🟰 ±0%
80%
🟰 ±0%
97
react-app/src/features/forms/waiver/capitated/Renewal.tsx 83.33%
🟰 ±0%
50%
🟰 ±0%
80%
🟰 ±0%
83.33%
🟰 ±0%
120
react-app/src/features/forms/waiver/contracting/Amendment.tsx 80%
🟰 ±0%
71.42%
🟰 ±0%
80%
🟰 ±0%
80%
🟰 ±0%
132
react-app/src/features/forms/waiver/contracting/Initial.tsx 75%
🟰 ±0%
50%
🟰 ±0%
75%
🟰 ±0%
75%
🟰 ±0%
98
react-app/src/features/forms/waiver/contracting/Renewal.tsx 80%
🟰 ±0%
50%
🟰 ±0%
80%
🟰 ±0%
80%
🟰 ±0%
124
react-app/src/features/forms/waiver/temporary-extension/index.tsx 86.66%
⬆️ +0.95%
100%
🟰 ±0%
77.77%
🟰 ±0%
86.66%
⬆️ +0.95%
190-191
react-app/src/features/package/hooks.tsx 100%
⬆️ +91.67%
100%
⬆️ +100.00%
100%
⬆️ +100.00%
100%
⬆️ +91.67%
react-app/src/features/package/index.tsx 60.86%
⬆️ +18.01%
65.78%
⬆️ +38.86%
61.53%
⬆️ +11.53%
61.9%
⬆️ +19.80%
45, 53-68, 132, 140-148, 155, 168-185
react-app/src/features/package/package-actions/index.tsx 93.75%
⬇️ -6.25%
91.89%
⬇️ -8.11%
87.5%
⬇️ -12.50%
93.75%
⬇️ -6.25%
104-109, 117
react-app/src/features/package/package-activity/hook.ts 97.95%
⬆️ +0.23%
89.65%
⬆️ +1.19%
100%
🟰 ±0%
97.91%
⬆️ +0.19%
47
react-app/src/features/package/package-activity/index.tsx 93.54%
⬇️ -0.74%
86.48%
⬆️ +3.15%
96%
⬇️ -4.00%
93.47%
⬇️ -0.64%
63, 96, 108, 113, 126, 372
react-app/src/features/package/package-details/details.tsx 92.68%
⬆️ +12.68%
74.5%
⬆️ +16.04%
75%
⬆️ +19.45%
92.1%
⬆️ +15.63%
36, 156-174
react-app/src/features/package/package-details/index.tsx 95.23%
⬆️ +0.23%
79.31%
⬇️ -2.83%
100%
🟰 ±0%
95%
⬆️ +0.27%
55
react-app/src/formSchemas/app-k.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/capitated-amendment.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/capitated-initial.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/capitated-renewal.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/contracting-amendment.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/contracting-initial.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/contracting-renewal.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/new-chip-details-submission.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/new-chip-submission.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/new-medicaid-submission.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
react-app/src/formSchemas/temporary-extension.ts 91.66%
⬇️ -8.34%
100%
🟰 ±0%
100%
🟰 ±0%
91.66%
⬇️ -8.34%
40
react-app/src/utils/drafts.ts 98.14% 95.83% 100% 97.95% 55
react-app/src/utils/Poller/documentPoller.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
Generated in workflow #4733 for commit 40f6879 by the Vitest Coverage Report Action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants