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

Div/appeals 42567 #23026

Merged
merged 11 commits into from
Oct 2, 2024
2 changes: 1 addition & 1 deletion app/controllers/correspondence_details_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def create_correspondence_relations
def save_correspondence_appeals
if params[:selected_appeal_ids].present?
params[:selected_appeal_ids].each do |appeal_id|
@correspondence.correspondence_appeals.create!(appeal_id: appeal_id)
@correspondence.correspondence_appeals.find_or_create_by(appeal_id: appeal_id)
end
end
if params[:unselected_appeal_ids].present?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { updateCorrespondenceInfo } from './../correspondenceDetailsReducer/corr
import CorrespondenceResponseLetters from './CorrespondenceResponseLetters';
import COPY from '../../../../COPY';
import CaseListTable from 'app/queue/CaseListTable';
import { prepareAppealForSearchStore, prepareAppealForStore, prepareTasksForStore } from 'app/queue/utils';
import { prepareAppealForStore, prepareTasksForStore } from 'app/queue/utils';
import { onReceiveTasks, onReceiveAppealDetails } from '../../QueueActions';
import moment from 'moment';
import Pagination from 'app/components/Pagination/Pagination';
Expand Down Expand Up @@ -451,7 +451,7 @@ const CorrespondenceDetails = (props) => {
<AppSegment filledBackground noMarginTop>
<CaseListTable
appeals={appealsToDisplay}
paginate="true"
paginate
showCheckboxes
taskRelatedAppealIds={selectedAppeals}
enableTopPagination
Expand Down Expand Up @@ -793,8 +793,7 @@ const CorrespondenceDetails = (props) => {
console.error(errorMessage);
});
}

if (selectedAppeals.length > 0) {
if ((selectedAppeals.length || correspondence.correspondenceAppealIds.length) > 0) {
const appealsSelected = selectedAppeals.filter((val) => !correspondence.correspondenceAppealIds.includes(val));

const payload = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import QueueFlowModal from '../../components/QueueFlowModal';
import NewLetter from '../intake/components/AddCorrespondence/NewLetter';
import {
submitLetterResponse,
correspondenceInfo
updateCorrespondenceInfo
} from '../../correspondence/correspondenceDetailsReducer/correspondenceDetailsActions';

const CorrespondenceResponseLetters = (props) => {
Expand Down Expand Up @@ -164,11 +164,11 @@ CorrespondenceResponseLetters.propTypes = {
};

const mapStateToProps = (state) => ({
correspondenceInfo: state.correspondenceDetails.correspondenceInfo,
updateCorrespondenceInfo: state.correspondenceDetails.updateCorrespondenceInfo,
});

const mapDispatchToProps = (dispatch) => bindActionCreators({
correspondenceInfo,
updateCorrespondenceInfo,
submitLetterResponse: (payload, correspondence) => submitLetterResponse(payload, correspondence)
}, dispatch);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ describe('CorrespondenceDetails', () => {
// Appeals related
const existingAppeals = screen.getAllByText('Tasks added to appeal').length;

expect(existingAppeals).toBe(2);
expect(existingAppeals).toBe(3);
expect(screen.getByText('240714-253')).toBeInTheDocument();
expect(screen.getByText('240714-254')).toBeInTheDocument();
expect(screen.getByText('VLJ Support Staff')).toBeInTheDocument();
Expand All @@ -376,7 +376,7 @@ describe('CorrespondenceDetails', () => {
// Appeals related
const tasksAddedTextCount = screen.getAllByText('Tasks added to appeal').length;

expect(tasksAddedTextCount).toBe(2);
expect(tasksAddedTextCount).toBe(3);
expect(screen.getByText('240714-253')).toBeInTheDocument();
expect(screen.getByText('240714-254')).toBeInTheDocument();
expect(screen.getByText('VLJ Support Staff')).toBeInTheDocument();
Expand Down
40 changes: 27 additions & 13 deletions spec/support/correspondece_task_actions_helpers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -84,27 +84,41 @@ def setup_correspondence_task(options = {})

def check_task_action(options = {})
correspondence = options[:correspondence]
task_name = options[:task_name]
action = options[:action]
form_text = options[:form_text]
button_id = options[:button_id]
expected_message = options[:expected_message]
visit_correspondence(correspondence)

dropdowns = open_last_task_dropdown
perform_task_action(dropdowns, options)

expect_task_message(dropdowns, options)
end

private

def visit_correspondence(correspondence)
visit "/queue/correspondence/#{correspondence.uuid}"
expect(page).to have_current_path("/queue/correspondence/#{correspondence.uuid}")
end

# find + dropdowns and click last one for tasks unrelated to appeal
def open_last_task_dropdown
dropdowns = page.all(".cf-btn-link")
dropdowns.last.click
dropdowns
end

click_dropdown(prompt: "Select an action", text: action)
def perform_task_action(dropdowns, options)
click_dropdown(prompt: "Select an action", text: options[:action])
fill_in_form_text(options[:form_text])
click_button options[:button_id]
expect(page).to have_current_path("/queue/correspondence/#{options[:correspondence].uuid}")
dropdowns
end

def fill_in_form_text(form_text)
find(".cf-form-textarea", match: :first).fill_in with: form_text
click_button button_id
expect(page).to have_current_path("/queue/correspondence/#{correspondence.uuid}")
# find + dropdowns and click last one for tasks unrelated to appeal
dropdowns = page.all(".cf-btn-link")
dropdowns.last.click
end

expect(page).to have_content("#{task_name} #{expected_message}")
def expect_task_message(_dropdowns, options)
open_last_task_dropdown
expect(page).to have_content("#{options[:task_name]} #{options[:expected_message]}")
end
end
Loading