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

Caceves/appeals 51904 code climate test #22438

Closed
wants to merge 509 commits into from

Conversation

cacevesva
Copy link
Contributor

Resolves Jira Issue Title

Description

Please explain the changes you made here.

Acceptance Criteria

  • Code compiles correctly

Testing Plan

  1. Go to Jira Issue/Test Plan Link or list them below
  • For feature branches merging into master: Was this deployed to UAT?

Frontend

User Facing Changes

  • Screenshots of UI changes added to PR & Original Issue
BEFORE AFTER

Storybook Story

For Frontend (Presentation) Components

  • Add a Storybook file alongside the component file (e.g. create MyComponent.stories.js alongside MyComponent.jsx)
  • Give it a title that reflects the component's location within the overall Caseflow hierarchy
  • Write a separate story (within the same file) for each discrete variation of the component

Backend

Database Changes

Only for Schema Changes

  • Add typical timestamps (created_at, updated_at) for new tables
  • Update column comments; include a "PII" prefix to indicate definite or potential PII data content
  • Have your migration classes inherit from Caseflow::Migration, especially when adding indexes (use add_safe_index) (see Writing DB migrations)
  • Verify that migrate:rollback works as desired (change supported functions)
  • Perform query profiling (eyeball Rails log, check bullet and fasterer output)
  • For queries using raw sql was an explain plan run by System Team
  • Add appropriate indexes (especially for foreign keys, polymorphic columns, unique constraints, and Rails scopes)
  • Run make check-fks; add any missing foreign keys or add to config/initializers/immigrant.rb (see Record associations and Foreign Keys)
  • Add belongs_to for associations to enable the schema diagrams to be automatically updated
  • Document any non-obvious semantics or logic useful for interpreting database data at Caseflow Data Model and Dictionary

Integrations: Adding endpoints for external APIs

  • Check that Caseflow's external API code for the endpoint matches the code in the relevant integration repo
    • Request: Service name, method name, input field names
    • Response: Check expected data structure
    • Check that calls are wrapped in MetricService record block
  • Check that all configuration is coming from ENV variables
    • Listed all new ENV variables in description
    • Worked with or notified System Team that new ENV variables need to be set
  • Update Fakes
  • For feature branches: Was this tested in Caseflow UAT

Best practices

Code Documentation Updates

  • Add or update code comments at the top of the class, module, and/or component.

Tests

Test Coverage

Did you include any test coverage for your code? Check below:

  • RSpec
  • Jest
  • Other

Code Climate

Your code does not add any new code climate offenses? If so why?

  • No new code climate issues added

Monitoring, Logging, Auditing, Error, and Exception Handling Checklist

Monitoring

  • Are performance metrics (e.g., response time, throughput) being tracked?
  • Are key application components monitored (e.g., database, cache, queues)?
  • Is there a system in place for setting up alerts based on performance thresholds?

Logging

  • Are logs being produced at appropriate log levels (debug, info, warn, error, fatal)?
  • Are logs structured (e.g., using log tags) for easier querying and analysis?
  • Are sensitive data (e.g., passwords, tokens) redacted or omitted from logs?
  • Is log retention and rotation configured correctly?
  • Are logs being forwarded to a centralized logging system if needed?

Auditing

  • Are user actions being logged for audit purposes?
  • Are changes to critical data being tracked ?
  • Are logs being securely stored and protected from tampering or exposing protected data?

Error Handling

  • Are errors being caught and handled gracefully?
  • Are appropriate error messages being displayed to users?
  • Are critical errors being reported to an error tracking system (e.g., Sentry, ELK)?
  • Are unhandled exceptions being caught at the application level ?

Exception Handling

  • Are custom exceptions defined and used where appropriate?
  • Is exception handling consistent throughout the codebase?
  • Are exceptions logged with relevant context and stack trace information?
  • Are exceptions being grouped and categorized for easier analysis and resolution?

wmedders21 and others added 30 commits April 1, 2024 13:44
* updated correspondence table

* run correspondence nod column migration

* Add nod value to seed helper for correspondence queue

* semi functional nod column

* Add package doc type filter options to constants file

* Add column title to constants file

* remove binding.pry

* add filtering logic for package doc type

* Add search logic for package doc type

* Update package doc type column for filtering and searching

* rollback nod migration

* added feature test for package document type column

* fixed several receipt date failures

* test fixes

* update selectors for specs to account for new column

* fixed several failing rspecs

* reverted taskCompletedDateColumn to master version

* fixed failing rspecs

* removed stray binding.pry

* fied linting issues

* fixed linting issue

* removed binding.pry

* fixed ordering of assigned columns

---------

Co-authored-by: Ryan Marshall <rnmarshall1993@gmail.com>
Co-authored-by: Jim Foley <james.foley4@va.gov>
Co-authored-by: HunJerBAH <99915461+HunJerBAH@users.noreply.github.com>
Co-authored-by: Jim Foley <james.foley4@va.gov>
Co-authored-by: HunJerBAH <99915461+HunJerBAH@users.noreply.github.com>
* Move Auto Assign Button to Correspondence Queue

* Fix Lint Errors
* Move Auto Assign Button to Correspondence Queue (#21324)

* Move Auto Assign Button to Correspondence Queue

* Fix Lint Errors

* Include RunAsyncable

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
* Move Auto Assign Button to Correspondence Queue (#21324)

* Move Auto Assign Button to Correspondence Queue

* Fix Lint Errors

* Include RunAsyncable

* Fix Broken Task Factories

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
#21329)

* replaced correspondences_appeals with correspondence_appeal

* added safe indecies to new correspondence_appeals table

* updated correspondence_appeal namespace

---------

Co-authored-by: Jim Foley <james.foley4@va.gov>
* Moving the queue method to a new controller

* updating routing to the queue controller

* Creating a spec file but leaving it empty for future changes

* added a test for the correspondence_cases route

---------

Co-authored-by: HunJerBAH <99915461+HunJerBAH@users.noreply.github.com>
* changed contents of correspondence seed notes (#21259)
<!-- Change JIRA-12345 to reflect the URL of the Jira item this PR is associated with -->
Resolves [Jira Issue Title](https://jira.devops.va.gov/browse/JIRA-12345)

# Description
Please explain the changes you made here.

## Acceptance Criteria
- [ ] Code compiles correctly

## Testing Plan
<!-- Change JIRA-12345 to reflect the URL of the location of the test plan(s) for this PR -->
1. Go to [Jira Issue/Test Plan Link](https://jira.devops.va.gov/browse/JIRA-12345) or list them below

- [ ] For feature branches merging into master: Was this deployed to UAT?

# Frontend
## User Facing Changes
 - [ ] Screenshots of UI changes added to PR & Original Issue

 BEFORE|AFTER
 ---|---

## Storybook Story
*For Frontend (Presentation) Components*
* [ ] Add a [Storybook](https://github.com/department-of-veterans-affairs/caseflow/wiki/Documenting-React-Components-with-Storybook) file alongside the component file (e.g. create `MyComponent.stories.js` alongside `MyComponent.jsx`)
* [ ] Give it a title that reflects the component's location within the overall Caseflow hierarchy
* [ ] Write a separate story (within the same file) for each discrete variation of the component

# Backend
## Database Changes
*Only for Schema Changes*

* [ ] Add typical timestamps (`created_at`, `updated_at`) for new tables
* [ ] Update column comments; include a "PII" prefix to indicate definite or potential [PII data content](https://github.com/department-of-veterans-affairs/appeals-team/blob/master/caseflow-team/0-how-we-work/pii-handbook.md#what-is-pii)
* [ ] Have your migration classes inherit from `Caseflow::Migration`, especially when adding indexes (use `add_safe_index`) (see [Writing DB migrations](https://github.com/department-of-veterans-affairs/caseflow/wiki/Writing-DB-migrations))
* [ ] Verify that `migrate:rollback` works as desired ([`change` supported functions](https://edgeguides.rubyonrails.org/active_record_migrations.html#using-the-change-method))
* [ ] Perform query profiling (eyeball Rails log, check bullet and fasterer output)
* [ ] For queries using raw sql was an explain plan run by System Team
* [ ] Add appropriate indexes (especially for foreign keys, polymorphic columns, unique constraints, and Rails scopes)
* [ ] Run `make check-fks`; add any missing foreign keys or add to `config/initializers/immigrant.rb` (see [Record associations and Foreign Keys](https://github.com/department-of-veterans-affairs/caseflow/wiki/Record-associations-and-Foreign-Keys))
* [ ] Add `belongs_to` for associations to enable the [schema diagrams](https://department-of-veterans-affairs.github.io/caseflow/task_trees/schema/schema_diagrams) to be automatically updated
* [ ] Document any non-obvious semantics or logic useful for interpreting database data at [Caseflow Data Model and Dictionary](https://github.com/department-of-veterans-affairs/caseflow/wiki/Caseflow-Data-Model-and-Dictionary)

## Integrations: Adding endpoints for external APIs
* [ ] Check that Caseflow's external API code for the endpoint matches the code in the relevant integration repo
  * [ ] Request: Service name, method name, input field names
  * [ ] Response: Check expected data structure
  * [ ] Check that calls are wrapped in MetricService record block
* [ ] Check that all configuration is coming from ENV variables
  * [ ] Listed all new ENV variables in description
  * [ ] Worked with or notified System Team that new ENV variables need to be set
* [ ] Update Fakes
* [ ] For feature branches: Was this tested in Caseflow UAT

# Best practices
## Code Documentation Updates
- [ ] Add or update code comments at the top of the class, module, and/or component.

## Tests
### Test Coverage
Did you include any test coverage for your code? Check below:
- [ ] RSpec
- [ ] Jest
- [ ] Other

### Code Climate
Your code does not add any new code climate offenses? If so why?
- [ ] No new code climate issues added

## Monitoring, Logging, Auditing, Error, and Exception Handling Checklist

### Monitoring
- [ ] Are performance metrics (e.g., response time, throughput) being tracked?
- [ ] Are key application components monitored (e.g., database, cache, queues)?
- [ ] Is there a system in place for setting up alerts based on performance thresholds?

### Logging
- [ ] Are logs being produced at appropriate log levels (debug, info, warn, error, fatal)?
- [ ] Are logs structured (e.g., using log tags) for easier querying and analysis?
- [ ] Are sensitive data (e.g., passwords, tokens) redacted or omitted from logs?
- [ ] Is log retention and rotation configured correctly?
- [ ] Are logs being forwarded to a centralized logging system if needed?

### Auditing
- [ ] Are user actions being logged for audit purposes?
- [ ] Are changes to critical data being tracked ?
- [ ] Are logs being securely stored and protected from tampering or exposing protected data?

### Error Handling
- [ ] Are errors being caught and handled gracefully?
- [ ] Are appropriate error messages being displayed to users?
- [ ] Are critical errors being reported to an error tracking system (e.g., Sentry, ELK)?
- [ ] Are unhandled exceptions being caught at the application level ?

### Exception Handling
- [ ] Are custom exceptions defined and used where appropriate?
- [ ] Is exception handling consistent throughout the codebase?
- [ ] Are exceptions logged with relevant context and stack trace information?
- [ ] Are exceptions being grouped and categorized for easier analysis and resolution?

* WIP

* Working as intended

* Spec tests

* Added instructions to modal

* Linting Errors

* Addressing comments

---------

Co-authored-by: Jim Foley <james.foley4@va.gov>
Co-authored-by: HunJerBAH <99915461+HunJerBAH@users.noreply.github.com>
* refactored props being passed down to child components

* refactored permissions checks for reassign and remove package tasks

* removed unecessary router useage

* addressed name change concerns for supervisor/superuser to be more in line with correspondence workflow
Rnmarshall93 and others added 27 commits August 1, 2024 10:34
…#22330)

* removed duplicate row

* fixed task text and improved code reability

* enhanced key, isolated serializer issue

* added filtering of additional types

* APPEALS-42531 - Correspondence Cases: Pending tab: FOIA request link (#22329)

* update schema

* updating task_url

* create folder, file and test coverage for FOIA Request

* Fix minor lint error

* Revert "update schema"

This reverts commit d358e14.

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>

* reworked data source for available actions

* fixed lint offense

* removed binding.pry

* made changes to serializer and correspondence model

* Fix for prettier offense

* fixed linting issues

---------

Co-authored-by: IsaiahBar <107133331+IsaiahBar@users.noreply.github.com>
Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>
* Code climate fix

* Rubocop fix

---------

Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>
Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
* Color fix

* Lint fix

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
* removed duplicate row

* fixed task text and improved code reability

* enhanced key, isolated serializer issue

* added filtering of additional types

* APPEALS-42531 - Correspondence Cases: Pending tab: FOIA request link (#22329)

* update schema

* updating task_url

* create folder, file and test coverage for FOIA Request

* Fix minor lint error

* Revert "update schema"

This reverts commit d358e14.

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>

* reworked data source for available actions

* fixed lint offense

* removed binding.pry

* made changes to serializer and correspondence model

* Fix for prettier offense

* fixed linting issues

* removed unused method.

* fixed correspondence_serializer calling the wrong method.

* Correspondence and Appeal Tasks: Tasks not related to an Appeal - fix (#22330)

* removed duplicate row

* fixed task text and improved code reability

* enhanced key, isolated serializer issue

* added filtering of additional types

* APPEALS-42531 - Correspondence Cases: Pending tab: FOIA request link (#22329)

* update schema

* updating task_url

* create folder, file and test coverage for FOIA Request

* Fix minor lint error

* Revert "update schema"

This reverts commit d358e14.

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>

* reworked data source for available actions

* fixed lint offense

* removed binding.pry

* made changes to serializer and correspondence model

* Fix for prettier offense

* fixed linting issues

---------

Co-authored-by: IsaiahBar <107133331+IsaiahBar@users.noreply.github.com>
Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>

* Code climate fix (#22377)

* Code climate fix

* Rubocop fix

---------

Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>
Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>

* Color fix (#22379)

* Color fix

* Lint fix

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>

* update mail_task.rb (#22376)

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>

* Revert "update mail_task.rb (#22376)" (#22385)

This reverts commit 2e4fbef.

---------

Co-authored-by: IsaiahBar <107133331+IsaiahBar@users.noreply.github.com>
Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>
Co-authored-by: divyadasari-va <135847343+divyadasari-va@users.noreply.github.com>
* update mail_task.rb

* added method override for verifying user in correspondence mail task model

* fix spec tests

---------

Co-authored-by: cacevesva <109166981+cacevesva@users.noreply.github.com>
Co-authored-by: HunJerBAH <Jeremy.Hunton@va.gov>
* adding all correspondences table

* added jest tests

* spec fix
* Correspondence Cases page Banner alert for approval and reject request approve request to reassign test fix

* Correspondence Cases page Banner alert for approval and reject request approve request to reassign test fix modifications

* Fix for banner warning message for efolder

* Add skips to MST PACT test to skip temporarily

---------

Co-authored-by: Christopher Aceves <christopher.aceves@va.gov>
… Completed Correspondences (#22374)

* #48957 - Add Correspondences' Status to Intake Form

* #48672 - Added a spec

* #42642 - updated status in spec
* Code climate fixes initial commit

* Added proptypes to tooltiphelper file

* Jest fixes

* Updated jest snap shots

* Fix for dentical blocks of code being found in multiple locations for radio input field

* Lint fixes

* Jest fixes

* Jest fixes updating the snapshots

* Codeclimate fixes for const props

* testing the duplication error fix for jest

* User tests 'FeatureToggle.enabled?(:correspondence_queue)' at least 3 times

* Add ignore for pdf offense

* Complexity fixes

---------

Co-authored-by: divyadasari-va <divya.dasari@va.gov>
Co-authored-by: divyadasari-va <135847343+divyadasari-va@users.noreply.github.com>
Copy link

codeclimate bot commented Aug 8, 2024

Code Climate has analyzed commit 37f123a and detected 2 issues on this pull request.

Here's the issue category breakdown:

Category Count
Complexity 2

View more on Code Climate.

@cacevesva cacevesva closed this Aug 8, 2024
@cacevesva cacevesva deleted the caceves/APPEALS-51904-code-climate-test branch August 8, 2024 23:52
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.