Skip to content
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: ensure that json files are loaded in text-mode #458

Merged
merged 2 commits into from
Oct 1, 2024

Conversation

as1729
Copy link
Contributor

@as1729 as1729 commented Oct 1, 2024

#431

This PR resolves more treasury file generation errors.

Error 1 - Opening a closed file in subrecipient-generation

{
	"id": "AgAAAZJIY50b4jSmRAAAAAAAAAAYAAAAAEFaSklZNTZwQUFCR1FDQWZWUTR3ZEFBQwAAACQAAAAAMDE5MjQ4NjMtYjRhMy00NDAyLWFmY2UtNTM4NjE3NjBiNDFm",
	"content": {
		"timestamp": "2024-10-01T14:02:20.827Z",
		"tags": [
			"aws_account:357150818708",
			"git.commit.sha:dec099240b122315147f9b8223facc372e1504d0",
			"git.repository_url:https://github.com/usdigitalresponse/cpf-reporter",
			"version:dec099240b122315147f9b8223facc372e1504d0",
			"functionname:cpfreporter-subrecipienttreasuryreportgen",
			"runtime:python3.12",
			"source:lambda",
			"env:staging",
			"resource:cpfreporter-subrecipienttreasuryreportgen",
			"account_id:357150818708",
			"function_arn:arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-subrecipienttreasuryreportgen",
			"architecture:x86_64",
			"dd_extension_version:55",
			"memorysize:512",
			"region:us-west-2",
			"service:cpf-reporter",
			"datadog.submission_auth:api_key",
			"datadog_extension_version:55",
			"management:terraform",
			"owner:grants",
			"repo:cpf-reporter",
			"statemachinearn:arn:aws:states:us-west-2:357150818708:statemachine:cpfreporter-generate-treasury-report",
			"statemachinename:cpfreporter-generate-treasury-report",
			"stepname:generate_subrecipient_file",
			"storagesize:512",
			"usage:workload"
		],
		"host": "arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-subrecipienttreasuryreportgen",
		"service": "cpf-reporter",
		"message": "Exception processing Subrecipient file generation event",
		"attributes": {
			"dd": {
				"service": "cpf-reporter",
				"env": "staging",
				"version": "dec099240b122315147f9b8223facc372e1504d0"
			},
			"exception": [
				{
					"is_cause": false,
					"frames": [
						{
							"filename": "/var/task/src/functions/subrecipient_treasury_report_gen.py",
							"lineno": 68,
							"name": "handle",
							"locals": {
								"payload": "'SubrecipientLambdaPayload(organization=OrganizationObj(id=2, preferences=Prefere'+132",
								"logger": "'<BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_'+55",
								"context": "'LambdaContext([aws_request_id=b4c7c133-6bb0-49dc-ae20-182b8ea60020,log_group_nam'+443",
								"event": "\"{'organization': {'id': 2, 'preferences': {'current_reporting_period_id': 1}}, '\"+95"
							}
						},
						{
							"filename": "/var/task/src/functions/subrecipient_treasury_report_gen.py",
							"lineno": 118,
							"name": "process_event",
							"locals": {
								"recent_subrecipients": "Ellipsis",
								"payload": "'SubrecipientLambdaPayload(organization=OrganizationObj(id=2, preferences=Prefere'+132",
								"s3_client": "<botocore.client.S3 object at 0x7f5f03e97c80>",
								"recent_subrecipients_file": "<tempfile._TemporaryFileWrapper object at 0x7f5f032b2840>",
								"logger": "'<BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_'+55",
								"organization_id": "2",
								"reporting_period_id": "1",
								"output_template_id": "5"
							}
						},
						{
							"filename": "/var/lang/lib/python3.12/json/__init__.py",
							"lineno": 293,
							"name": "load",
							"locals": {
								"parse_int": "None",
								"object_pairs_hook": "None",
								"parse_float": "None",
								"object_hook": "None",
								"fp": "<tempfile._TemporaryFileWrapper object at 0x7f5f032b2840>",
								"cls": "None",
								"parse_constant": "None",
								"kw": "{}"
							}
						},
						{
							"filename": "/var/lang/lib/python3.12/tempfile.py",
							"lineno": 499,
							"name": "func_wrapper",
							"locals": {
								"args": "()",
								"func": "<built-in method read of _io.BufferedRandom object at 0x7f5f03163e20>",
								"kwargs": "{}"
							}
						}
					],
					"exc_type": "ValueError",
					"exc_value": "read of closed file"
				}
			],
			"level": "error",
			"lambda_event": {
				"subrecipient_step_function": {
					"outputTemplateId": 5,
					"organization": {
						"preferences": {
							"current_reporting_period_id": 1
						},
						"id": 2
					},
					"user": {
						"id": 7,
						"email": "[email protected]"
					}
				}
			},
			"pathname": "/var/task/src/functions/subrecipient_treasury_report_gen.py",
			"hostname": "arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-subrecipienttreasuryreportgen",
			"lambda": {
				"arn": "arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-subrecipienttreasuryreportgen",
				"request_id": "b4c7c133-6bb0-49dc-ae20-182b8ea60020"
			},
			"lineno": 70,
			"service": "cpf-reporter",
			"status": "info",
			"timestamp": 1727791340827,
			"ts": "2024-10-01T14:02:20.827064Z",
			"func_name": "handle"
		}
	}
}

Error 2 - JSON decode error due to file being read in binary mode

{
	"id": "AgAAAZJIY5kxCGbVJQAAAAAAAAAYAAAAAEFaSklZNXFxQUFCNXpxSmNKSXgxQ0FBQwAAACQAAAAAMDE5MjQ4Y2YtMzhhOC00YzU3LTlkMDUtYmU0YjY4N2FhMWNk",
	"content": {
		"timestamp": "2024-10-01T14:02:19.825Z",
		"tags": [
			"aws_account:357150818708",
			"function_arn:arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-treasuryprojectfilegeneration",
			"git.commit.sha:dec099240b122315147f9b8223facc372e1504d0",
			"git.repository_url:https://github.com/usdigitalresponse/cpf-reporter",
			"resource:cpfreporter-treasuryprojectfilegeneration",
			"version:dec099240b122315147f9b8223facc372e1504d0",
			"runtime:python3.12",
			"source:lambda",
			"env:staging",
			"functionname:cpfreporter-treasuryprojectfilegeneration",
			"account_id:357150818708",
			"architecture:x86_64",
			"dd_extension_version:55",
			"region:us-west-2",
			"memorysize:512",
			"service:cpf-reporter",
			"datadog.submission_auth:api_key",
			"datadog_extension_version:55",
			"management:terraform",
			"owner:grants",
			"repo:cpf-reporter",
			"statemachinearn:arn:aws:states:us-west-2:357150818708:statemachine:cpfreporter-generate-treasury-report",
			"statemachinename:cpfreporter-generate-treasury-report",
			"stepname:generate_project_1a_file",
			"stepname:generate_project_1b_file",
			"stepname:generate_project_1c_file",
			"storagesize:512",
			"usage:workload"
		],
		"host": "arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-treasuryprojectfilegeneration",
		"service": "cpf-reporter",
		"message": "Exception processing Project file generation event",
		"attributes": {
			"dd": {
				"service": "cpf-reporter",
				"env": "staging",
				"version": "dec099240b122315147f9b8223facc372e1504d0"
			},
			"exception": [
				{
					"is_cause": false,
					"frames": [
						{
							"filename": "/var/task/src/functions/generate_treasury_report.py",
							"lineno": 89,
							"name": "handle",
							"locals": {
								"payload": "'ProjectLambdaPayload(organization=OrganizationObj(id=2, preferences=PreferencesO'+812",
								"logger": "'<BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_'+55",
								"context": "'LambdaContext([aws_request_id=ae259a28-18f7-4939-b941-dc65041acbf4,log_group_nam'+443",
								"event": "\"{'organization': {'id': 2, 'preferences': {'current_reporting_period_id': 1}}, '\"+660"
							}
						},
						{
							"filename": "/var/task/src/functions/generate_treasury_report.py",
							"lineno": 137,
							"name": "process_event",
							"locals": {
								"payload": "'ProjectLambdaPayload(organization=OrganizationObj(id=2, preferences=PreferencesO'+812",
								"project_use_code": "<ProjectType._1C: '1C'>",
								"s3_client": "<botocore.client.S3 object at 0x7fb031567c50>",
								"logger": "'<BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_'+55",
								"organization": "OrganizationObj(id=2, preferences=PreferencesObj(current_reporting_period_id=1))",
								"ProjectRowSchema": "<class 'src.schemas.schema_V2024_05_24.Project1CRow'>"
							}
						},
						{
							"filename": "/var/task/src/functions/generate_treasury_report.py",
							"lineno": 342,
							"name": "get_existing_output_metadata",
							"locals": {
								"project_use_code": "<ProjectType._1C: '1C'>",
								"s3_client": "<botocore.client.S3 object at 0x7fb031567c50>",
								"organization": "OrganizationObj(id=2, preferences=PreferencesObj(current_reporting_period_id=1))",
								"logger": "'<BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_'+55",
								"existing_project_agency_id_to_row_number": "{}",
								"existing_file": "<tempfile._TemporaryFileWrapper object at 0x7fb03321c260>"
							}
						},
						{
							"filename": "/var/lang/lib/python3.12/json/__init__.py",
							"lineno": 293,
							"name": "load",
							"locals": {
								"parse_int": "None",
								"object_pairs_hook": "None",
								"parse_float": "None",
								"object_hook": "None",
								"fp": "<tempfile._TemporaryFileWrapper object at 0x7fb03321c260>",
								"cls": "None",
								"parse_constant": "None",
								"kw": "{}"
							}
						},
						{
							"filename": "/var/lang/lib/python3.12/json/__init__.py",
							"lineno": 346,
							"name": "loads",
							"locals": {
								"parse_int": "None",
								"object_pairs_hook": "None",
								"s": "''",
								"parse_float": "None",
								"object_hook": "None",
								"cls": "None",
								"parse_constant": "None",
								"kw": "{}"
							}
						},
						{
							"filename": "/var/lang/lib/python3.12/json/decoder.py",
							"lineno": 337,
							"name": "decode",
							"locals": {
								"s": "''",
								"_w": "<built-in method match of re.Pattern object at 0x7fb035552670>",
								"self": "<json.decoder.JSONDecoder object at 0x7fb03576a960>"
							}
						},
						{
							"filename": "/var/lang/lib/python3.12/json/decoder.py",
							"lineno": 355,
							"name": "raw_decode",
							"locals": {
								"s": "''",
								"self": "<json.decoder.JSONDecoder object at 0x7fb03576a960>",
								"idx": "0"
							}
						}
					],
					"exc_type": "JSONDecodeError",
					"exc_value": "Expecting value: line 1 column 1 (char 0)"
				}
			],
			"level": "error",
			"lambda_event": {
				"step_function": {
					"outputTemplateId": 5,
					"organization": {
						"preferences": {
							"current_reporting_period_id": 1
						},
						"id": 2
					},
					"ProjectType": "1C",
					"uploadsToAdd": {
						"3": {
							"createdAt": "2024-07-09T18:41:32.532Z",
							"filename": "cpf_laurel_pass_1.xlsm",
							"objectKey": "uploads/2/3/1/180/cpf_laurel_pass_1.xlsm"
						},
						"4": {
							"createdAt": "2024-06-17T16:32:03.154Z",
							"filename": "CPF Input Template v20240524_1C_PASS.xlsm",
							"objectKey": "uploads/2/4/1/167/CPF Input Template v20240524_1C_PASS.xlsm"
						},
						"7": {
							"createdAt": "2024-09-30T16:42:09.808Z",
							"filename": "CPF Input Template v20240524_9.30_3.xlsm",
							"objectKey": "uploads/2/7/1/199/CPF Input Template v20240524_9.30_3.xlsm"
						}
					},
					"user": {
						"id": 7,
						"email": "[email protected]"
					}
				}
			},
			"pathname": "/var/task/src/functions/generate_treasury_report.py",
			"hostname": "arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-treasuryprojectfilegeneration",
			"lambda": {
				"arn": "arn:aws:lambda:us-west-2:357150818708:function:cpfreporter-treasuryprojectfilegeneration",
				"request_id": "ae259a28-18f7-4939-b941-dc65041acbf4"
			},
			"lineno": 91,
			"service": "cpf-reporter",
			"status": "info",
			"timestamp": 1727791339825,
			"ts": "2024-10-01T14:02:19.824925Z",
			"func_name": "handle"
		}
	}
}

@as1729 as1729 enabled auto-merge (squash) October 1, 2024 17:55
@github-actions github-actions bot added bug Something isn't working python labels Oct 1, 2024
Copy link

github-actions bot commented Oct 1, 2024

Terraform Summary

Step Result
🖌 Terraform Format & Style
⚙️ Terraform Initialization
🤖 Terraform Validation
📖 Terraform Plan

Hint: If "Terraform Format & Style" failed, run terraform fmt -recursive from the terraform/ directory and commit the results.

Output

Validation Output
Success! The configuration is valid.


Plan Summary
CHANGE RESOURCE
add aws_s3_object.origin_dist_artifact["static/js/app.ccbdb446.js"]
aws_s3_object.origin_dist_artifact["static/js/app.ccbdb446.js.LICENSE.txt"]
update aws_ecs_service.console
aws_s3_object.origin_dist_artifact["200.html"]
aws_s3_object.origin_dist_artifact["build-manifest.json"]
aws_s3_object.origin_dist_artifact["chunk-references.json"]
aws_s3_object.origin_dist_artifact["index.html"]
module.lambda_function-cpfCreateArchive.aws_lambda_function.this[0]
module.lambda_function-cpfValidation.aws_lambda_function.this[0]
module.lambda_function-email-presigned-url.aws_lambda_function.this[0]
module.lambda_function-graphql.aws_lambda_function.this[0]
module.lambda_function-processValidationJson.aws_lambda_function.this[0]
module.lambda_function-subrecipientTreasuryReportGen.aws_lambda_function.this[0]
module.lambda_function-treasuryProjectFileGeneration.aws_lambda_function.this[0]
recreate aws_ecs_task_definition.console
aws_s3_object.lambda_artifact-graphql
aws_s3_object.lambda_artifact-processValidationJson
aws_s3_object.lambda_artifact-python
module.lambda_function-cpfCreateArchive.aws_lambda_permission.current_version_triggers["StepFunctionTrigger"]
module.lambda_function-cpfValidation.aws_lambda_permission.current_version_triggers["S3BucketNotification"]
module.lambda_function-email-presigned-url.aws_lambda_permission.current_version_triggers["StepFunctionTrigger"]
module.lambda_function-graphql.aws_lambda_permission.current_version_triggers["APIGateway"]
module.lambda_function-processValidationJson.aws_lambda_permission.current_version_triggers["S3BucketNotification"]
module.lambda_function-subrecipientTreasuryReportGen.aws_lambda_permission.current_version_triggers["StepFunctionTrigger"]
module.lambda_function-treasuryProjectFileGeneration.aws_lambda_permission.current_version_triggers["S3BucketNotification"]
module.lambda_function-treasuryProjectFileGeneration.aws_lambda_permission.current_version_triggers["StepFunctionTrigger"]
delete aws_s3_object.origin_dist_artifact["static/js/app.c4264440.js"]
aws_s3_object.origin_dist_artifact["static/js/app.c4264440.js.LICENSE.txt"]

Pusher: @as1729, Action: pull_request_target, Workflow: Continuous Integration

Copy link

github-actions bot commented Oct 1, 2024

QA Summary

See our documentation for tips on how to resolve failing QA checks.

QA Check Result
🌐 Web Tests
🔗 API Tests
🐍 Python Tests
📏 ESLint
🧼 Ruff
🧹 TFLint

Test Coverage

Coverage report for api suite
St File % Stmts % Branch % Funcs % Lines Uncovered Line #s
🔴 All files 49.8 33.47 56.05 50.27
🔴  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 38.55 50 44.44 37.8
🟢   processValidationJson.scenarios.ts 100 100 100 100
🔴   processValidationJson.ts 37.8 50 44.44 37.03 59-98,118-119,157-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
🔴   reportingPeriodCertifications.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.12 9.57 11.7 13.43
🟡   auth.ts 62.96 48.48 57.14 65.38 60-61,77-78,84-85,101-102,124,131,134,139-146,170,174
🔴   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 75 90.9 50 75
🟢   organizations.scenarios.ts 100 100 100 100
🟡   organizations.ts 73.97 90.9 44.44 73.97 34-35,53-57,92,164-194,202,220-247
🟢  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/reportingPeriodCertifications 100 100 100 100
🟢   reportingPeriodCertifications.scenarios.ts 100 100 100 100
🟢   reportingPeriodCertifications.ts 100 100 100 100
🟡  src/services/reportingPeriods 71.01 60 57.89 72.05
🟢   reportingPeriods.scenarios.ts 100 100 100 100
🟡   reportingPeriods.ts 69.23 60 50 70.31 15-27,44-48,58-59,74-77,93,116,125,164,187-208
🟢  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,104,132-146,259-263
🟢  src/services/users 85.61 82 88.88 85.61
🟢   users.scenarios.ts 100 100 100 100
🟢   users.ts 84.61 82 84.21 84.61 222,239,255,277-279,288-292,310-311,325-328,346-348,356-357,362,371-377
🟢  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 17.58 22.87 14.97 17.26
🟢  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-68
🔴  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 0 50 58.33 14-16,50-76
🔴  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 71.42 38.46 55.55 71.42
🟡   ReportingPeriods.tsx 67.74 44.44 41.66 67.74 47-52,59-60,66,81,116-133
🟢   columns.tsx 81.81 25 83.33 81.81 32-35
🟡  web/src/components/ReportingPeriod/ReportingPeriodsCell 55 0 55.55 47.05
🟢   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 14-42
🔴  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-60
🟢  web/src/components/TableBuilder 88.88 88.88 77.77 88.57
🟡   DebouncedInput.tsx 80 100 66.66 77.77 21,32
🟡   Filter.tsx 75 100 50 75 10
🟢   TableBuilder.tsx 87.5 66.66 75 87.5 40
🟢   TableHeader.tsx 100 91.66 100 100 13
🟢   TableRow.tsx 100 100 100 100
🟡  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](https://github.com/usdigitalrespo...*[Comment body truncated]*

@as1729
Copy link
Contributor Author

as1729 commented Oct 1, 2024

Going to merge without approval here due to time sensitivity. Will address any feedback in follow-up PRs.

@as1729 as1729 disabled auto-merge October 1, 2024 18:10
@as1729 as1729 merged commit 4615552 into main Oct 1, 2024
22 checks passed
@as1729 as1729 deleted the as/fix-file-loading-errors branch October 1, 2024 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working python
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant