From 29a05cc58cbe9d85575ca7b7fd165eafb7b784cc Mon Sep 17 00:00:00 2001 From: mchbidwell <122634362+mchbidwell@users.noreply.github.com> Date: Tue, 19 Dec 2023 13:32:31 -0600 Subject: [PATCH] Revert "Feature/appeals 24683" --- app/models/user.rb | 4 -- .../hearings/hearing_day_serializer.rb | 8 ++- app/views/hearings/index.html.erb | 1 - client/app/hearings/HearingsApp.jsx | 9 ++-- .../components/dailyDocket/DailyDocket.jsx | 7 ++- .../dailyDocket/DailyDocketPrinted.jsx | 24 ++++----- .../dailyDocket/DailyDocket.test.js | 47 ----------------- .../dailyDocket/DailyDocketEditLink.test.js | 46 ----------------- .../dailyDocket/DailyDocketPrinted.test.js | 51 ------------------- .../daily_docket/ro_viewhearsched_spec.rb | 9 +++- .../feature/hearings/daily_docket/vso_spec.rb | 1 - 11 files changed, 25 insertions(+), 182 deletions(-) delete mode 100644 client/test/app/hearings/components/dailyDocket/DailyDocket.test.js delete mode 100644 client/test/app/hearings/components/dailyDocket/DailyDocketEditLink.test.js delete mode 100644 client/test/app/hearings/components/dailyDocket/DailyDocketPrinted.test.js diff --git a/app/models/user.rb b/app/models/user.rb index f78751c2af4..826fae4df5a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -265,10 +265,6 @@ def vso_employee? roles.include?("VSO") end - def non_board_employee? - vso_employee? || roles.include?("RO ViewHearSched") - end - def camo_employee? member_of_organization?(VhaCamo.singleton) && FeatureToggle.enabled?(:vha_predocket_workflow, user: self) end diff --git a/app/serializers/hearings/hearing_day_serializer.rb b/app/serializers/hearings/hearing_day_serializer.rb index 905578e02fd..dbdbe74f32a 100644 --- a/app/serializers/hearings/hearing_day_serializer.rb +++ b/app/serializers/hearings/hearing_day_serializer.rb @@ -9,17 +9,15 @@ class HearingDaySerializer attribute :deleted_at attribute :id attribute :judge_first_name do |hearing_day, params| - RequestStore[:current_user]&.non_board_employee? ? nil : get_judge_first_name(hearing_day, params) + get_judge_first_name(hearing_day, params) end attribute :judge_id attribute :judge_css_id attribute :judge_last_name do |hearing_day, params| - RequestStore[:current_user]&.non_board_employee? ? nil : get_judge_last_name(hearing_day, params) + get_judge_last_name(hearing_day, params) end attribute :lock - attribute :notes do |hearing_day| - RequestStore[:current_user]&.non_board_employee? ? nil : hearing_day.notes - end + attribute :notes attribute :readable_request_type do |hearing_day, params| get_readable_request_type(hearing_day, params) end diff --git a/app/views/hearings/index.html.erb b/app/views/hearings/index.html.erb index 5d605dd89d5..55241926043 100644 --- a/app/views/hearings/index.html.erb +++ b/app/views/hearings/index.html.erb @@ -30,7 +30,6 @@ userIsHearingManagement: current_user.in_hearing_management_team?, userIsBoardAttorney: current_user.attorney?, userIsHearingAdmin: current_user.in_hearing_admin_team?, - userIsNonBoardEmployee: current_user.non_board_employee?, featureToggles: { metricsBrowserError: FeatureToggle.enabled?(:metrics_browser_error, user: current_user) } diff --git a/client/app/hearings/HearingsApp.jsx b/client/app/hearings/HearingsApp.jsx index 98e027d603f..2d43d749701 100644 --- a/client/app/hearings/HearingsApp.jsx +++ b/client/app/hearings/HearingsApp.jsx @@ -42,8 +42,7 @@ export default class HearingsApp extends React.PureComponent { userIsDvc, userIsHearingManagement, userIsBoardAttorney, - userIsHearingAdmin, - userIsNonBoardEmployee + userIsHearingAdmin } = this.props; return Object.freeze({ @@ -62,8 +61,7 @@ export default class HearingsApp extends React.PureComponent { userIsDvc, userIsHearingManagement, userIsBoardAttorney, - userIsHearingAdmin, - userIsNonBoardEmployee, + userIsHearingAdmin }); }; @@ -240,6 +238,5 @@ HearingsApp.propTypes = { userIsDvc: PropTypes.bool, userIsHearingManagement: PropTypes.bool, userIsBoardAttorney: PropTypes.bool, - userIsHearingAdmin: PropTypes.bool, - userIsNonBoardEmployee: PropTypes.bool + userIsHearingAdmin: PropTypes.bool }; diff --git a/client/app/hearings/components/dailyDocket/DailyDocket.jsx b/client/app/hearings/components/dailyDocket/DailyDocket.jsx index 79423edd933..681594b724b 100644 --- a/client/app/hearings/components/dailyDocket/DailyDocket.jsx +++ b/client/app/hearings/components/dailyDocket/DailyDocket.jsx @@ -269,7 +269,7 @@ export default class DailyDocket extends React.Component { />
- {!user.userIsNonBoardEmployee && ( + {!user.userVsoEmployee && ( VLJ: {dailyDocket.judgeFirstName} {dailyDocket.judgeLastName}
@@ -301,9 +301,8 @@ export default class DailyDocket extends React.Component { )}
- {(user.userIsHearingManagement || user.userIsHearingAdmin) && ( - - )} + {(user.userIsHearingManagement || user.userIsHearingAdmin) && + }
-

- Daily Docket ( - {moment(docket.scheduledFor).format('ddd M/DD/YYYY')}) -

- {docket.notes && ( +

Daily Docket ({moment(docket.scheduledFor).format('ddd M/DD/YYYY')})

+ {docket.notes &&
- Notes: -
+ Notes:
{docket.notes}
- )} + }
- {!user.userIsNonBoardEmployee && ( + {!user.userVsoEmployee && ( - VLJ: - {` ${docket.judgeFirstName} ${docket.judgeLastName}`} + VLJ: `${docket.judgeFirstName}` `${docket.judgeLastName}`
)} Coordinator: {docket.bvaPoc}
Hearing type: {docket.readableRequestType}
- Regional office: {docket.regionalOffice} -
+ Regional office: {docket.regionalOffice}
Room number: {docket.room}
@@ -118,7 +112,7 @@ export class DailyDocketPrinted extends React.Component { slowReRendersAreOk /> - {_.size(previousHearings) > 0 && ( + {_.size(previousHearings) > 0 &&

Previous Hearings

@@ -128,7 +122,7 @@ export class DailyDocketPrinted extends React.Component { slowReRendersAreOk />
- )} + } ); } diff --git a/client/test/app/hearings/components/dailyDocket/DailyDocket.test.js b/client/test/app/hearings/components/dailyDocket/DailyDocket.test.js deleted file mode 100644 index 4f2027cf301..00000000000 --- a/client/test/app/hearings/components/dailyDocket/DailyDocket.test.js +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import '@testing-library/jest-dom'; -import { MemoryRouter as Router } from 'react-router-dom'; -import DailyDocket from '../../../../../../client/app/hearings/components/dailyDocket/DailyDocket'; -import { Provider } from 'react-redux'; -import { applyMiddleware, createStore, compose } from 'redux'; -import thunk from 'redux-thunk'; - -const createStoreWithReducer = (initialState) => { - const reducer = (state = initialState) => state; - - return createStore(reducer, compose(applyMiddleware(thunk))); -}; - -const renderDailyDocket = (props) => { - const store = createStoreWithReducer({ components: {} }); - - return render( - - - - - - ); -}; - -it('does render judge name when user is not a nonBoardEmployee', async () => { - const mockProps = { - user: { userIsNonBoardEmployee: false }, - dailyDocket: { judgeFirstName: 'Jon', judgeLastName: 'Doe' }, - }; - - renderDailyDocket(mockProps); - expect(await screen.findByText(/VLJ:/)).toBeInTheDocument(); -}); - -it('does not render judge name when userVsoEmployee is true and judge first name and last name are present', - async () => { - const mockProps = { - user: { userIsNonBoardEmployee: true }, - dailyDocket: { judgeFirstName: 'Jon', judgeLastName: 'Doe' }, - }; - - renderDailyDocket(mockProps); - expect(await screen.queryByText(/VLJ:\s*Jon\s*Doe/)).not.toBeInTheDocument(); - }); diff --git a/client/test/app/hearings/components/dailyDocket/DailyDocketEditLink.test.js b/client/test/app/hearings/components/dailyDocket/DailyDocketEditLink.test.js deleted file mode 100644 index 4438e45eee1..00000000000 --- a/client/test/app/hearings/components/dailyDocket/DailyDocketEditLink.test.js +++ /dev/null @@ -1,46 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import '@testing-library/jest-dom'; -import { MemoryRouter as Router } from 'react-router-dom'; -import DailyDocketEditLink from '../../../../../../client/app/hearings/components/dailyDocket/DailyDocketEditLinks'; -import { Provider } from 'react-redux'; -import { applyMiddleware, createStore, compose } from 'redux'; -import thunk from 'redux-thunk'; - -const createStoreWithReducer = (initialState) => { - const reducer = (state = initialState) => state; - - return createStore(reducer, compose(applyMiddleware(thunk))); -}; - -const renderDailyDocket = (props) => { - const store = createStoreWithReducer({ components: {} }); - - return render( - - - - - - ); -}; - -it('does render docket notes when user is a board employee', async () => { - const mockProps = { - user: { userIsNonBoardEmployee: false }, - dailyDocket: { notes: 'There is a note here' }, - }; - - renderDailyDocket(mockProps); - expect(await screen.findByText(/Notes:/)).toBeInTheDocument(); -}); - -it('does not render docket notes when user is a nonBoardEmployee', async () => { - const mockProps = { - user: { userIsNonBoardEmployee: true }, - dailyDocket: { notes: 'There is a note here' }, - }; - - renderDailyDocket(mockProps); - expect(await screen.queryByText(/Note:\s*This\s*is\s*a\s*note/)).not.toBeInTheDocument(); -}); diff --git a/client/test/app/hearings/components/dailyDocket/DailyDocketPrinted.test.js b/client/test/app/hearings/components/dailyDocket/DailyDocketPrinted.test.js deleted file mode 100644 index 86eddf54b1e..00000000000 --- a/client/test/app/hearings/components/dailyDocket/DailyDocketPrinted.test.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import '@testing-library/jest-dom'; -import DailyDocketPrinted from '../../../../../../client/app/hearings/components/dailyDocket/DailyDocketPrinted'; - -const renderDailyDocketPrinted = (props) => { - render(); -}; - -describe('DailyDocketPrinted', () => { - it('renders tag VLJ when user is not a VSO employee', async () => { - const mockProps = { - user: { userIsNonBoardEmployee: false }, - docket: { judgeFirstName: 'John', judgeLastName: 'Doe' }, - }; - - renderDailyDocketPrinted(mockProps); - expect(await screen.findByText(/VLJ:/)).toBeInTheDocument(); - }); - - it('renders docket notes when user is a board employee', async () => { - const mockProps = { - user: { userIsNonBoardEmployee: false }, - docket: { notes: 'There is a note here' } - }; - - renderDailyDocketPrinted(mockProps); - expect(await screen.findByText(/Notes:/)).toBeInTheDocument(); - }); - - it('does not render tag VLJ when user is a VSO employee', () => { - const mockProps = { - user: { userIsNonBoardEmployee: true }, - docket: { judgeFirstName: null, judgeLastName: null }, - disablePrompt: false, - }; - - renderDailyDocketPrinted(mockProps); - expect(screen.queryByText(/VLJ:/)).not.toBeInTheDocument(); - }); - - it('does not render docket notes when user is a nonBoardEmployee', async () => { - const mockProps = { - user: { userIsNonBoardEmployee: true }, - docket: { notes: 'There is a note here' }, - }; - - renderDailyDocketPrinted(mockProps); - expect(await screen.queryByText(/Note:\s*This\s*is\s*a\s*note/)).not.toBeInTheDocument(); - }); -}); diff --git a/spec/feature/hearings/daily_docket/ro_viewhearsched_spec.rb b/spec/feature/hearings/daily_docket/ro_viewhearsched_spec.rb index 0ab30eeb453..d719f5f897f 100644 --- a/spec/feature/hearings/daily_docket/ro_viewhearsched_spec.rb +++ b/spec/feature/hearings/daily_docket/ro_viewhearsched_spec.rb @@ -5,13 +5,18 @@ let!(:current_user) { User.authenticate!(css_id: "BVATWARNER", roles: ["RO ViewHearSched"]) } let!(:hearing) { create(:hearing, :with_tasks) } - scenario "User cannot view docket notes" do + scenario "User can only update notes" do visit "hearings/schedule/docket/" + hearing.hearing_day.id.to_s expect(page).to_not have_button("Print all Hearing Worksheets") expect(page).to_not have_content("Edit Hearing Day") expect(page).to_not have_content("Lock Hearing Day") expect(page).to_not have_content("Hearing Details") - expect(page).to_not have_content("Notes") expect(page).to have_field("Transcript Requested", disabled: true, visible: false) + expect(find(".dropdown-#{hearing.external_id}-disposition")).to have_css(".cf-select__control--is-disabled") + fill_in "Notes", with: "This is a note about the hearing!" + click_button("Save") + + expect(page).to have_content("You have successfully updated", wait: 10) + expect(page).to have_content("This is a note about the hearing!") end end diff --git a/spec/feature/hearings/daily_docket/vso_spec.rb b/spec/feature/hearings/daily_docket/vso_spec.rb index 2ea780e53c4..749a8672269 100644 --- a/spec/feature/hearings/daily_docket/vso_spec.rb +++ b/spec/feature/hearings/daily_docket/vso_spec.rb @@ -12,6 +12,5 @@ expect(page).to_not have_content("Edit Hearing Day") expect(page).to_not have_content("Lock Hearing Day") expect(page).to_not have_content("Hearing Details") - expect(page).to_not have_content("Notes") end end