-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: updates the inputs to match the latest lambda payload schema #395
Conversation
QA SummarySee our documentation for tips on how to resolve failing QA checks.
Test CoverageCoverage report for
|
St | File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
---|---|---|---|---|---|---|
🔴 | All files | 48.13 | 30.29 | 55.55 | 48.56 | |
🔴 | src | 0 | 100 | 0 | 0 | |
🔴 | server.ts | 0 | 100 | 0 | 0 | 6-13 |
🟢 | src/directives/requireAuth | 100 | 100 | 100 | 100 | |
🟢 | requireAuth.ts | 100 | 100 | 100 | 100 | |
🟡 | src/directives/skipAuth | 50 | 100 | 0 | 50 | |
🟡 | skipAuth.ts | 50 | 100 | 0 | 50 | 13 |
🔴 | src/functions | 0 | 100 | 0 | 0 | |
🔴 | graphql.ts | 0 | 100 | 0 | 0 | 15-27 |
🔴 | src/functions/processValidationJson | 42.16 | 54.54 | 44.44 | 41.46 | |
🟢 | processValidationJson.scenarios.ts | 100 | 100 | 100 | 100 | |
🔴 | processValidationJson.ts | 41.46 | 54.54 | 44.44 | 40.74 | 59-98,118-119,165,177-178,193-196,201-242,255-256,270-309,321-324,332 |
🔴 | src/graphql | 0 | 100 | 100 | 0 | |
🔴 | agencies.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | expenditureCategories.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | inputTemplates.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | organizations.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | outputTemplates.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | projects.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | reportingPeriods.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | subrecipientUploads.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | subrecipients.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | uploadValidations.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | uploads.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | users.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | validationRuleses.sdl.ts | 0 | 100 | 100 | 0 | 1 |
🔴 | src/lib | 13 | 9.28 | 11.7 | 13.32 | |
🟡 | auth.ts | 64.7 | 48.38 | 57.14 | 67.34 | 70-71,77-78,94-95,117,124,127,132-139,163,167 |
🔴 | aws.ts | 25.42 | 18.75 | 25 | 25.42 | 53-58,74-97,121-123,150-171,186-272 |
🟢 | constants.ts | 100 | 100 | 100 | 100 | |
🔴 | db.ts | 45.45 | 50 | 50 | 45.45 | 15-35,41,43,50 |
🔴 | ec-codes.ts | 0 | 100 | 100 | 0 | 1 |
🟢 | logger.ts | 100 | 100 | 100 | 100 | |
🔴 | persist-upload.js | 0 | 0 | 0 | 0 | 16-295 |
🔴 | preconditions.ts | 0 | 0 | 0 | 0 | 2-3 |
🔴 | records.js | 0 | 0 | 0 | 0 | 12-214 |
🔴 | templateRules.ts | 0 | 0 | 0 | 0 | |
🔴 | tracer.ts | 0 | 100 | 100 | 0 | 5-14 |
🔴 | validate-upload.js | 0 | 0 | 0 | 0 | 18-790 |
🟢 | validation-error.ts | 83.33 | 100 | 50 | 83.33 | 22 |
🔴 | validation-rules.js | 0 | 0 | 0 | 0 | 6-194 |
🟡 | src/services/agencies | 67.34 | 50 | 80 | 67.34 | |
🟢 | agencies.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | agencies.ts | 65.21 | 50 | 75 | 65.21 | 40-51,60-64,97-98,104,113-121 |
🟡 | src/services/expenditureCategories | 78.57 | 66.66 | 88.88 | 78.57 | |
🟢 | expenditureCategories.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | expenditureCategories.ts | 77.77 | 66.66 | 88.88 | 77.77 | 30-34,49-52,60,91 |
🟡 | src/services/inputTemplates | 77.77 | 66.66 | 85.71 | 77.77 | |
🟢 | inputTemplates.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | inputTemplates.ts | 76.92 | 66.66 | 85.71 | 76.92 | 25-29,39-40,50,85 |
🟡 | src/services/organizations | 76.81 | 88.88 | 55.55 | 76.81 | |
🟢 | organizations.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | organizations.ts | 75.75 | 88.88 | 50 | 75.75 | 36-40,75,147-177,185,203-227 |
🟢 | src/services/outputTemplates | 82.85 | 66.66 | 85.71 | 82.85 | |
🟢 | outputTemplates.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | outputTemplates.ts | 82.35 | 66.66 | 85.71 | 82.35 | 26-30,40-41,51,114 |
🟡 | src/services/passage | 74.07 | 62.5 | 100 | 74.07 | |
🟡 | passage.ts | 74.07 | 62.5 | 100 | 74.07 | 18-19,65-76 |
🟡 | src/services/projects | 80 | 100 | 62.5 | 80 | |
🟢 | projects.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | projects.ts | 78.57 | 100 | 62.5 | 78.57 | 45-51 |
🟡 | src/services/reportingPeriods | 69.23 | 70 | 54.54 | 69.23 | |
🟢 | reportingPeriods.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | reportingPeriods.ts | 68.42 | 70 | 54.54 | 68.42 | 25-29,39-40,55-58,74,105-121 |
🟢 | src/services/subrecipientUploads | 88.88 | 83.33 | 85.71 | 88.88 | |
🟢 | subrecipientUploads.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | subrecipientUploads.ts | 86.36 | 83.33 | 80 | 86.36 | 64,94-99 |
🟢 | src/services/subrecipients | 92.85 | 100 | 88.88 | 92.85 | |
🟢 | subrecipients.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | subrecipients.ts | 90 | 100 | 81.81 | 90 | 53-58 |
🟡 | src/services/uploadValidations | 57.14 | 100 | 14.28 | 57.14 | |
🟢 | uploadValidations.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | uploadValidations.ts | 53.84 | 100 | 14.28 | 53.84 | 10,16,30,38,45-48 |
🟢 | src/services/uploads | 91.34 | 71.42 | 88.63 | 91.34 | |
🟢 | uploads.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | uploads.ts | 88.31 | 71.42 | 75 | 88.31 | 37,103,131-145,258-262 |
🟡 | src/services/users | 78.78 | 62.5 | 92 | 78.78 | |
🟢 | users.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | users.ts | 77.41 | 62.5 | 88.88 | 77.41 | 208,216-225,238-241,263-265,274-278,296-297,311-314,332-334,342-343,348,357-360 |
🟢 | src/services/validationRuleses | 85.71 | 100 | 71.42 | 85.71 | |
🟢 | validationRuleses.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | validationRuleses.ts | 84.61 | 100 | 71.42 | 84.61 | 43-48 |
Coverage report for web
suite
St | File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
---|---|---|---|---|---|---|
🔴 | All files | 10.41 | 11.62 | 8.74 | 9.89 | |
🟢 | api/src/lib | 100 | 100 | 100 | 100 | |
🟢 | constants.ts | 100 | 100 | 100 | 100 | |
🔴 | web/src | 28.57 | 18.75 | 66.66 | 28.57 | |
🔴 | App.tsx | 0 | 0 | 0 | 0 | 3-36 |
🟢 | Routes.tsx | 100 | 100 | 100 | 100 | |
🟡 | auth.ts | 50 | 50 | 100 | 50 | 19-24 |
🔴 | entry.client.tsx | 0 | 0 | 100 | 0 | 10-22 |
🔴 | web/src/auth | 7.14 | 0 | 4.16 | 7.14 | |
🔴 | localAuth.ts | 9.09 | 0 | 8.33 | 9.09 | 39-68,76-80 |
🔴 | passageAuth.ts | 5 | 0 | 0 | 5 | 22-25,31-60 |
🔴 | web/src/components/Agency/Agencies | 0 | 100 | 0 | 0 | |
🔴 | Agencies.tsx | 0 | 100 | 0 | 0 | 9-21 |
🔴 | web/src/components/Agency/AgenciesCell | 0 | 100 | 0 | 0 | |
🔴 | AgenciesCell.tsx | 0 | 100 | 0 | 0 | 8-39 |
🔴 | web/src/components/Agency/Agency | 0 | 0 | 0 | 0 | |
🔴 | Agency.tsx | 0 | 0 | 0 | 0 | 10-78 |
🔴 | web/src/components/Agency/AgencyCell | 0 | 100 | 0 | 0 | |
🔴 | AgencyCell.tsx | 0 | 100 | 0 | 0 | 7-27 |
🔴 | web/src/components/Agency/AgencyForm | 0 | 0 | 0 | 0 | |
🔴 | AgencyForm.tsx | 0 | 0 | 0 | 0 | 25-45 |
🔴 | web/src/components/Agency/EditAgencyCell | 0 | 100 | 0 | 0 | |
🔴 | EditAgencyCell.tsx | 0 | 100 | 0 | 0 | 10-59 |
🔴 | web/src/components/Agency/NewAgency | 0 | 100 | 0 | 0 | |
🔴 | NewAgency.tsx | 0 | 100 | 0 | 0 | 9-35 |
🟢 | web/src/components/Navigation | 100 | 60 | 100 | 100 | |
🟢 | Navigation.tsx | 100 | 60 | 100 | 100 | 24-57 |
🔴 | web/src/components/Organization/EditOrganizationCell | 0 | 100 | 0 | 0 | |
🔴 | EditOrganizationCell.tsx | 0 | 100 | 0 | 0 | 13-64 |
🔴 | web/src/components/Organization/EditOrganizationForm | 0 | 0 | 0 | 0 | |
🔴 | EditOrganizationForm.tsx | 0 | 0 | 0 | 0 | 27-41 |
🔴 | web/src/components/Organization/NewOrganization | 0 | 100 | 0 | 0 | |
🔴 | NewOrganization.tsx | 0 | 100 | 0 | 0 | 9-37 |
🔴 | web/src/components/Organization/NewOrganizationForm | 0 | 0 | 0 | 0 | |
🔴 | NewOrganizationForm.tsx | 0 | 0 | 0 | 0 | 25-54 |
🔴 | web/src/components/Organization/Organization | 0 | 0 | 0 | 0 | |
🔴 | Organization.tsx | 0 | 0 | 0 | 0 | 10-70 |
🔴 | web/src/components/Organization/OrganizationCell | 0 | 100 | 0 | 0 | |
🔴 | OrganizationCell.tsx | 0 | 100 | 0 | 0 | 7-28 |
🔴 | web/src/components/Organization/OrganizationPickListsCell | 40 | 0 | 27.27 | 36.36 | |
🟡 | OrganizationPickListsCell.mock.ts | 50 | 100 | 0 | 100 | |
🔴 | OrganizationPickListsCell.stories.tsx | 0 | 0 | 0 | 0 | 6-32 |
🟡 | OrganizationPickListsCell.tsx | 64.28 | 100 | 50 | 58.33 | 14-16,47-70 |
🔴 | web/src/components/Organization/Organizations | 0 | 100 | 0 | 0 | |
🔴 | Organizations.tsx | 0 | 100 | 0 | 0 | 9-21 |
🔴 | web/src/components/Organization/OrganizationsCell | 0 | 100 | 0 | 0 | |
🔴 | OrganizationsCell.tsx | 0 | 100 | 0 | 0 | 8-37 |
🔴 | web/src/components/OutputTemplate/EditOutputTemplateCell | 0 | 100 | 0 | 0 | |
🔴 | EditOutputTemplateCell.tsx | 0 | 100 | 0 | 0 | 18-81 |
🔴 | web/src/components/OutputTemplate/NewOutputTemplate | 0 | 0 | 0 | 0 | |
🔴 | NewOutputTemplate.tsx | 0 | 0 | 0 | 0 | 17-126 |
🔴 | web/src/components/OutputTemplate/OutputTemplate | 0 | 0 | 0 | 0 | |
🔴 | OutputTemplate.tsx | 0 | 0 | 0 | 0 | 17-97 |
🔴 | web/src/components/OutputTemplate/OutputTemplateCell | 0 | 100 | 0 | 0 | |
🔴 | OutputTemplateCell.tsx | 0 | 100 | 0 | 0 | 17-47 |
🔴 | web/src/components/OutputTemplate/OutputTemplateForm | 0 | 0 | 0 | 0 | |
🔴 | OutputTemplateForm.tsx | 0 | 0 | 0 | 0 | 18-63 |
🔴 | web/src/components/OutputTemplate/OutputTemplates | 0 | 0 | 0 | 0 | |
🔴 | OutputTemplates.tsx | 0 | 0 | 0 | 0 | 18-94 |
🔴 | web/src/components/OutputTemplate/OutputTemplatesCell | 0 | 100 | 0 | 0 | |
🔴 | OutputTemplatesCell.tsx | 0 | 100 | 0 | 0 | 18-52 |
🔴 | web/src/components/ReportingPeriod/EditReportingPeriodCell | 0 | 100 | 0 | 0 | |
🔴 | EditReportingPeriodCell.tsx | 0 | 100 | 0 | 0 | 13-74 |
🔴 | web/src/components/ReportingPeriod/NewReportingPeriod | 0 | 100 | 0 | 0 | |
🔴 | NewReportingPeriod.tsx | 0 | 100 | 0 | 0 | 9-35 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriod | 0 | 0 | 0 | 0 | |
🔴 | ReportingPeriod.tsx | 0 | 0 | 0 | 0 | 12-101 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriodCell | 0 | 100 | 0 | 0 | |
🔴 | ReportingPeriodCell.tsx | 0 | 100 | 0 | 0 | 7-33 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriodForm | 0 | 0 | 0 | 0 | |
🔴 | ReportingPeriodForm.tsx | 0 | 0 | 0 | 0 | 18-43 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriods | 0 | 0 | 0 | 0 | |
🔴 | ReportingPeriods.tsx | 0 | 0 | 0 | 0 | 13-96 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriodsCell | 0 | 100 | 0 | 0 | |
🔴 | ReportingPeriodsCell.tsx | 0 | 100 | 0 | 0 | 8-43 |
🟡 | web/src/components/ReportingPeriodsCell | 57.14 | 0 | 60 | 50 | |
🟢 | ReportingPeriodsCell.mock.ts | 100 | 100 | 100 | 100 | |
🔴 | ReportingPeriodsCell.stories.tsx | 0 | 0 | 0 | 0 | 6-32 |
🟢 | ReportingPeriodsCell.tsx | 100 | 100 | 100 | 100 | |
🔴 | web/src/components/Subrecipient/SubrecipientTableUploadLinksDisplay | 0 | 0 | 0 | 0 | |
🔴 | SubrecipientTableUploadLinksDisplay.stories.tsx | 0 | 100 | 100 | 0 | 5-82 |
🔴 | SubrecipientTableUploadLinksDisplay.tsx | 0 | 0 | 0 | 0 | 5-77 |
🔴 | web/src/components/Subrecipient/Subrecipients | 0 | 0 | 0 | 0 | |
🔴 | Subrecipients.tsx | 0 | 100 | 0 | 0 | 5-8 |
🔴 | columns.tsx | 0 | 0 | 0 | 0 | 7-93 |
🔴 | web/src/components/Subrecipient/SubrecipientsCell | 0 | 100 | 0 | 0 | |
🔴 | SubrecipientsCell.tsx | 0 | 100 | 0 | 0 | 7-62 |
🔴 | web/src/components/TableBuilder | 0 | 0 | 0 | 0 | |
🔴 | DebouncedInput.tsx | 0 | 0 | 0 | 0 | 13-32 |
🔴 | Filter.tsx | 0 | 0 | 0 | 0 | 6-15 |
🔴 | TableBuilder.tsx | 0 | 0 | 0 | 0 | 22-70 |
🔴 | TableHeader.tsx | 0 | 0 | 0 | 0 | 5-42 |
🔴 | TableRow.tsx | 0 | 100 | 0 | 0 | 3-7 |
🟡 | web/src/components/TemplateUploadReportingPeriodCell | 55 | 0 | 55.55 | 47.05 | |
🟢 | TemplateUploadReportingPeriodCell.mock.ts | 100 | 100 | 100 | 100 | |
🔴 | TemplateUploadReportingPeriodCell.stories.tsx | 0 | 0 | 0 | 0 | 11-37 |
🟢 | TemplateUploadReportingPeriodCell.tsx | 100 | 100 | 100 | 100 | |
🔴 | web/src/components/TreasuryGeneration/DownloadTreasuryFiles | 0 | 100 | 0 | 0 | |
🔴 | DownloadTreasuryFiles.tsx | 0 | 100 | 0 | 0 | 6-30 |
🔴 | web/src/components/TreasuryGeneration/NewTreasuryGeneration | 0 | 100 | 0 | 0 | |
🔴 | NewTreasuryGeneration.tsx | 0 | 100 | 0 | 0 | 8-39 |
🔴 | web/src/components/TreasuryGeneration/NewTreasuryGenerationForm | 0 | 0 | 0 | 0 | |
🔴 | NewTreasuryGenerationForm.tsx | 0 | 0 | 0 | 0 | 20-31 |
🔴 | web/src/components/Upload/EditUploadCell | 0 | 100 | 0 | 0 | |
🔴 | EditUploadCell.tsx | 0 | 100 | 0 | 0 | 10-66 |
🔴 | web/src/components/Upload/NewUpload | 0 | 100 | 0 | 0 | |
🔴 | NewUpload.tsx | 0 | 100 | 0 | 0 | 7-35 |
🔴 | web/src/components/Upload/Upload | 0 | 0 | 0 | 0 | |
🔴 | Upload.stories.tsx | 0 | 100 | 100 | 0 | 5-93 |
🔴 | Upload.tsx | 0 | 0 | 0 | 0 | 11-61 |
🔴 | web/src/components/Upload/UploadCell | 0 | 100 | 0 | 0 | ...[Comment body truncated] |
Terraform Summary
Hint: If "Terraform Format & Style" failed, run OutputValidation Output
Plan Summary
Pusher: @as1729, Action: |
…e to provide a unique execution name
…les to make it easier for devs
…ests to reflect the new export-type.
…ile generation locally. Note: this will be removed once the terraform can be run directly on localstack, but for now this is a good starting point to verify the work.
…sting step functions locally
…r than local state among states
// The EC code was never added. This is the time to initialize it. | ||
uploadsByEC[upload.expenditureCategory.code] = { | ||
organization: { | ||
id: organization.id, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit but any reason not to just do organization
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the organization
here is of type Organization
which contains many other fields like name
the usual timestamps, etc so figured I'll pair it down to only the relevant fields to send to the step-function.
Although this brings up a good point- maybe when I query for the organization here I can only select these specific fields that way I don't have to re-define this everywhere.
CreateArchiveLambdaPayload.model_validate({"Payload": data}) | ||
organizationObj = { | ||
# "id": "1234", Missing a required field | ||
"preferences": {"current_reporting_period_id": 5678}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
supernit: could we make this reporting period ID a global and use it across test cases since we're using the same one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the ideal I'd like to get to, but for some reason I couldn't quite get it working with how to pass parameters from step-functions to each of the lambda invocations.
Here's the ideal payload to invoke the step-function:
{
common_metadata: { organization: { id: 99, preferences: { current_reporting_period: 2 } } },
project1A: { ... details for project 1A only ... }
project1B: { ... details for project 1B only ... }
project1C: { ... details for project 1C only ... }
subrecipient: { ... details for subrecipient only ... }
zip: { ... details for zip creation only .... }
}
Here's the current payload to invoke the step-function:
{
project1A: { ... details for project 1A only ...common_metadata: { organization: { id: 99, preferences: { current_reporting_period: 2 } } }, }
project1B: { ... details for project 1B only ...common_metadata: { organization: { id: 99, preferences: { current_reporting_period: 2 } } }, }
project1C: { ... details for project 1C only ...common_metadata: { organization: { id: 99, preferences: { current_reporting_period: 2 } } }, }
subrecipient: { ... details for subrecipient only ... common_metadata: { organization: { id: 99, preferences: { current_reporting_period: 2 } } },}
zip: { ... details for zip creation only .... common_metadata: { organization: { id: 99, preferences: { current_reporting_period: 2 } } },}
}
Currently I filter this in treasury_generation_step_function.tf
here as follows:
"Payload.$" : "$$.Execution.Input.['project1A']",
"Payload.$" : "{ "common": "$$.Execution.Input.['common_metadata']", "specific": $$.Execution.Input.['project1A']",
According to https://jsonpath.com/ there is some union operator that can be used but I couldn't quite grok it. Lmk if anything pops out as an obvious solution here. In theory something like this would work:
"Payload.$": "$$.Execution.Input.['project1A'], $$.Execution.Input.['common_metadata']"
This PR ensures the following:
Send Treasury Report by Email
button builds the correct input payload for the step function:aws.ts
module to use the newer pattern for exporting functions\Local Test Results
The results here show that when the following input is sent to the step-function locally that it invokes the lambdas with the events as shown.
Input to the State Function where we expect 1A,1B,1C to have an empty object:
Output from each of the lambda log-groups