-
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
add: update error messages and pydantic validators #276
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 | 44.33 | 25.79 | 48.51 | 44.86 | |
🔴 | 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 | 56 | 50 | 50 | 56 | |
🟢 | processValidationJson.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | processValidationJson.ts | 55.1 | 50 | 50 | 55.1 | 36-75,95-96,132-140,152-153,168-171,183-184,197 |
🔴 | 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 |
🔴 | 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.08 | 8.82 | 11.49 | 13.41 | |
🟡 | 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 | 38.23 | 12.5 | 33.33 | 38.23 | 46-51,67-90,127-159 |
🟢 | 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 | 76.19 | 62.5 | 88.88 | 76.19 | |
🟢 | agencies.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | agencies.ts | 74.35 | 62.5 | 85.71 | 74.35 | 43-47,80-81,87,96-104 |
🟡 | 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 | 67.39 | 87.5 | 50 | 67.39 | |
🟢 | organizations.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | organizations.ts | 65.11 | 87.5 | 42.85 | 65.11 | 34-38,73,86-116,139-163 |
🟡 | src/services/outputTemplates | 77.77 | 66.66 | 85.71 | 77.77 | |
🟢 | outputTemplates.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | outputTemplates.ts | 76.92 | 66.66 | 85.71 | 76.92 | 25-29,39-40,50,81 |
🟡 | 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 | 67.5 | 70 | 50 | 67.5 | |
🟢 | reportingPeriods.scenarios.ts | 100 | 100 | 100 | 100 | |
🟡 | reportingPeriods.ts | 66.66 | 70 | 50 | 66.66 | 25-29,39-40,55-58,74,105-126 |
🟢 | src/services/subrecipients | 85.71 | 100 | 71.42 | 85.71 | |
🟢 | subrecipients.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | subrecipients.ts | 84.61 | 100 | 71.42 | 84.61 | 47-52 |
🟡 | 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 | 86.04 | 75 | 76.19 | 86.04 | |
🟢 | uploads.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | uploads.ts | 81.81 | 75 | 58.33 | 81.81 | 31,107-121 |
🟢 | src/services/users | 85.96 | 79.41 | 92 | 85.96 | |
🟢 | users.scenarios.ts | 100 | 100 | 100 | 100 | |
🟢 | users.ts | 84.9 | 79.41 | 88.88 | 84.9 | 227-229,238-242,260-261,275-278,296-298,306-307,312,321-324 |
🟢 | 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 | 13.74 | 14.43 | 11.56 | 13.08 | |
🟢 | 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 | 37.5 | 100 | 100 | |
🟢 | Navigation.tsx | 100 | 37.5 | 100 | 100 | 26-70 |
🔴 | web/src/components/Organization/EditOrganizationCell | 0 | 100 | 0 | 0 | |
🔴 | EditOrganizationCell.tsx | 0 | 100 | 0 | 0 | 13-62 |
🔴 | 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-27 |
🔴 | web/src/components/Organization/OrganizationPickListsCell | 42.85 | 0 | 30 | 38.88 | |
🟡 | OrganizationPickListsCell.mock.ts | 50 | 100 | 0 | 100 | |
🔴 | OrganizationPickListsCell.stories.tsx | 0 | 0 | 0 | 0 | 6-32 |
🟡 | OrganizationPickListsCell.tsx | 80 | 100 | 60 | 75 | 39-58 |
🔴 | 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/ReportingPeriod/EditReportingPeriodCell | 0 | 100 | 0 | 0 | |
🔴 | EditReportingPeriodCell.tsx | 0 | 100 | 0 | 0 | 13-76 |
🔴 | 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-105 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriodCell | 0 | 100 | 0 | 0 | |
🔴 | ReportingPeriodCell.tsx | 0 | 100 | 0 | 0 | 7-34 |
🔴 | 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-98 |
🔴 | web/src/components/ReportingPeriod/ReportingPeriodsCell | 0 | 100 | 0 | 0 | |
🔴 | ReportingPeriodsCell.tsx | 0 | 100 | 0 | 0 | 8-44 |
🟡 | 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/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/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 | 8-38 |
🔴 | 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 | |
🔴 | UploadCell.tsx | 0 | 100 | 0 | 0 | 7-59 |
🔴 | web/src/components/Upload/UploadForm | 0 | 0 | 0 | 0 | |
🔴 | UploadForm.tsx | 0 | 0 | 0 | 0 | 19-99 |
🔴 | web/src/components/Upload/UploadValidationButtonGroup | 0 | 0 | 0 | 0 | |
🔴 | UploadValidationButtonGroup.stories.tsx | 0 | 100 | 0 | 0 | 5-47 |
🔴 | UploadValidationButtonGroup.tsx | 0 | 0 | 0 | 0 | 24-57 |
🔴 | web/src/components/Upload/UploadValidationResultsTable | 42.85 | 100 | 100 | 42.85 | |
🔴 | UploadValidationResultsTable.stories.tsx | 0 | 100 | 100 | 0 | 6-41 |
🟢 | UploadValidationResultsTable.tsx | 100 | 100 | 100 | 100 | |
🔴 | web/src/components/Upload/UploadValidationStatus | 0 | 0 | 0 | 0 | |
🔴 | UploadValidationStatus.tsx | 0 | 0 | 0 | 0 | 3-30 |
🔴 | web/src/components/Upload/Uploads | 0 | 0 | 0 | 0 | |
🔴 | Uploads.tsx | 0 | 100 | 0 | 0 | 9-17 |
🔴 | columns.tsx | 0 | 0 | 0 | 0 | 7-63 |
🔴 | web/src/components/Upload/UploadsCell | 0 | 100 | 0 | 0 | |
🔴 | UploadsCell.tsx | 0 | 100 | 0 | 0 | 8-55 |
🔴 | web/src/components/User/EditUserCell | 0 | 100 | 0 | 0 | |
🔴 | EditUserCell.tsx | 0 | 100 | 0 | 0 | 10-58 |
🔴 | web/src/components/User/NewUser | 0 | 100 | 0 | 0 | |
🔴 | NewUser.tsx | 0 | 100 | 0 | 0 | 9-32 |
🔴 | web/src/components/User/User | 0 | 0 | 0 | 0 | |
🔴 | User.tsx | 0 | 0 | 0 | 0 | 10-94 |
🔴 | web/src/components/User/UserCell | 0 | 100 | 0 | 0 | |
🔴 | UserCell.tsx | 0 | 100 | 0 | 0 | 7-30 |
🔴 | web/src/components/User/UserForm | 0 | 0 | 0 | 0 | |
🔴 | UserForm.tsx | 0 | 0 | 0 | 0 | 28-202 |
🔴 | web/src/components/User/Users | 0 | 100 | 0 | 0 | |
🔴 | Users.tsx | 0 | 100 | 0 | 0 | 9-24 |
🔴 | web/src/components/User/UsersCell | 0 | 100 | 0 | 0 | |
🔴 | UsersCell.tsx | 0 | 100 | 0 | 0 | 8-44 |
🟡 | web/src/layouts/AuthenticatedLayout | 60 | 50 | 100 | 60 | |
🔴 | AuthenticatedLayout.stories.tsx | 0 | 100 | 100 | 0 | 5-13 |
🟢 | AuthenticatedLayout.tsx | 100 | 50 | 100 | 100 | 24 |
🟢 | web/src/lib | 100 | 100 | 100 | 100 | |
🟢 | formatters.tsx | 100 | 100 | 100 | 100 | |
🟢 | seeds.ts | 100 | 100 | 100 | 100 | |
🔴 | web/src/pages/Agency/AgenciesPage | 0 | 100 | 0 | 0 | |
🔴 | AgenciesPage.tsx | 0 | 100 | 0 | 0 | 8-12 |
🔴 | web/src/pages/Agency/AgencyPage | 0 | 100 | 0 | 0 | |
🔴 | AgencyPage.tsx | 0 | 100 | 0 | 0 | 7-8 |
🔴 | web/src/pages/Agency/EditAgencyPage | 0 | 100 | 0 | 0 | |
🔴 | EditAgencyPage.tsx | 0 | 100 | 0 | 0 | 7-8 |
🔴 | web/src/pages/Agency/NewAgencyPage | 0 | 100 | 0 | 0 | |
🔴 | NewAgencyPage.tsx | 0 | 100 | 0 | 0 | 3-4 |
🔴 | web/src/pages/FatalErrorPage | 0 | 0 | 0 | 0 | |
🔴 | FatalErrorPage.tsx | 0 | 0 | 0 | 0 | 15 |
🟡 | web/src/pages/ForbiddenPage | 50 | 100 | 100 | 50 | |
🔴 | ForbiddenPage.stories.tsx | 0 | 100 | 100 | 0 | [5-13](https://github.com/usdigitalresponse/cpf-reporter/blob/17ea8e888b91fb418aff21321346abefd7e58983/web/src/pages/ForbiddenPage/ForbiddenPage.stories.tsx#L5...*[Comment body truncated]* |
Terraform Summary
Hint: If "Terraform Format & Style" failed, run OutputValidation Output
Plan Summary
Pusher: @vshia, Action: |
0bd1d6e
to
b5a79c6
Compare
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.
@vshia the solution looks good, the only thing I would add here is a test case that asserts that we receive the following error:
Value is required for {info.field_name}
- fee free to pick any field but as long as there's some coverage here we should be good
b5a79c6
to
260e073
Compare
@as1729 Added 3 tests. For some reason, if I set a project field to an empty string |
260e073
to
4fc130f
Compare
0465b04
to
f457c0a
Compare
f457c0a
to
7948587
Compare
Addresses #288
I'm not sure what the best way to go about this. Using
field_validators
is the pydantic approach but I didn't want to create a different field validator for every type of field.