Skip to content

Commit

Permalink
Merge pull request #1455 from flexion/937-docket-sequence-ui
Browse files Browse the repository at this point in the history
937: fix order of initial docket record
  • Loading branch information
rachaelparris authored Apr 22, 2019
2 parents 686bae3 + f0efa42 commit 93a7dc1
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 52 deletions.
46 changes: 29 additions & 17 deletions shared/src/business/entities/Case.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,23 +127,6 @@ function Case(rawCase) {
this.orderForOds = this.orderForOds || false;
this.orderForRatification = this.orderForRatification || false;
this.orderToShowCause = this.orderToShowCause || false;

const trialRecord = this.docketRecord.find(
record => record.description.indexOf('Request for Place of Trial') !== -1,
);

if (this.preferredTrialCity) {
if (!trialRecord) {
this.addDocketRecord(
new DocketRecord({
description: `Request for Place of Trial at ${
this.preferredTrialCity
}`,
filingDate: this.receivedAt || this.createdAt,
}),
);
}
}
}

Case.name = 'Case';
Expand Down Expand Up @@ -592,6 +575,35 @@ Case.prototype.markAsPaidByPayGov = function(payGovDate) {
return this;
};

/**
*
* @param {string} preferredTrialCity
* @returns {Case}
*/
Case.prototype.setRequestForTrialDocketRecord = function(preferredTrialCity) {
this.preferredTrialCity = preferredTrialCity;

let found;
let docketRecordIndex;

this.docketRecord.forEach((docketRecord, index) => {
found =
found ||
docketRecord.description.indexOf('Request for Place of Trial') !== -1;
docketRecordIndex = found ? index : docketRecordIndex;
});

if (preferredTrialCity && !found) {
this.addDocketRecord(
new DocketRecord({
description: `Request for Place of Trial at ${this.preferredTrialCity}`,
filingDate: this.receivedAt || this.createdAt,
}),
);
}
return this;
};

/**
*
* @param docketRecordEntity
Expand Down
37 changes: 24 additions & 13 deletions shared/src/business/entities/Case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,6 @@ const { PARTY_TYPES } = require('./contacts/PetitionContact');
const { WorkItem } = require('./WorkItem');

describe('Case entity', () => {
it('creates a trial city docket record if preferredTrialCity is updated and a docket record does not exist', () => {
const myCase = new Case(MOCK_CASE);
expect(myCase).toMatchObject({
docketRecord: [
{
description: 'Request for Place of Trial at Washington, D.C.',
},
],
});
});

it('defaults the orders to false', () => {
const myCase = new Case(MOCK_CASE);
expect(myCase).toMatchObject({
Expand Down Expand Up @@ -561,6 +550,28 @@ describe('Case entity', () => {
});
});

describe('setRequestForTrialDocketRecord', () => {
it('sets request for trial docket record when it does not already exist', () => {
const caseRecord = new Case(MOCK_CASE);
const preferredTrialCity = 'Mobile, Alabama';
const initialDocketLength =
(caseRecord.docketRecord && caseRecord.docketRecord.length) || 0;
caseRecord.setRequestForTrialDocketRecord(preferredTrialCity);
const docketLength = caseRecord.docketRecord.length;
expect(docketLength).toEqual(initialDocketLength + 1);
});

it('should only set docket record once for request for trial', () => {
const caseRecord = new Case(MOCK_CASE);
const preferredTrialCity = 'Mobile, Alabama';
caseRecord.setRequestForTrialDocketRecord(preferredTrialCity);
const docketLength = caseRecord.docketRecord.length;
caseRecord.setRequestForTrialDocketRecord('Birmingham, Alabama');
caseRecord.setRequestForTrialDocketRecord('Somecity, USA');
expect(docketLength).toEqual(caseRecord.docketRecord.length);
});
});

describe('addDocketRecord', () => {
it('adds a new docketrecord', () => {
const caseRecord = new Case(MOCK_CASE);
Expand All @@ -570,8 +581,8 @@ describe('Case entity', () => {
filingDate: new Date().toISOString(),
}),
);
expect(caseRecord.docketRecord).toHaveLength(2);
expect(caseRecord.docketRecord[1].description).toEqual('test');
expect(caseRecord.docketRecord).toHaveLength(1);
expect(caseRecord.docketRecord[0].description).toEqual('test');
});
it('validates the docketrecord', () => {
const caseRecord = new Case(MOCK_CASE);
Expand Down
6 changes: 3 additions & 3 deletions shared/src/business/test/createCaseInteractor.e2e.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,14 @@ describe('createCase integration test', () => {
docketNumber: '101-19',
docketNumberSuffix: 'S',
docketRecord: [
{
description: 'Request for Place of Trial at Aberdeen, South Dakota',
},
{
description: 'Petition',
filedBy: 'Rick Petitioner',
status: undefined,
},
{
description: 'Request for Place of Trial at Aberdeen, South Dakota',
},
],
documents: [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,14 +132,14 @@ describe('fileExternalDocument integration test', () => {
docketNumber: '101-19',
docketNumberSuffix: 'S',
docketRecord: [
{
description: 'Request for Place of Trial at Aberdeen, South Dakota',
},
{
description: 'Petition',
documentId: '92eac064-9ca5-4c56-80a0-c5852c752277',
filedBy: 'Rick Petitioner',
},
{
description: 'Request for Place of Trial at Aberdeen, South Dakota',
},
{
description: 'Motion for Leave to File Brief in Support of Petition',
documentId: '12de0fac-f63c-464f-ac71-0f54fd248484',
Expand Down
10 changes: 10 additions & 0 deletions shared/src/business/useCases/createCaseInteractor.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const {
} = require('../../authorization/authorizationClientService');
const { capitalize } = require('lodash');
const { Case } = require('../entities/Case');
const { DocketRecord } = require('../entities/DocketRecord');
const { Document } = require('../entities/Document');
const { Message } = require('../entities/Message');
const { PETITIONS_SECTION } = require('../entities/WorkQueue');
Expand Down Expand Up @@ -117,6 +118,15 @@ exports.createCase = async ({
petitionDocumentEntity,
);

caseToAdd.addDocketRecord(
new DocketRecord({
description: `Request for Place of Trial at ${
caseToAdd.preferredTrialCity
}`,
filingDate: caseToAdd.receivedAt || caseToAdd.createdAt,
}),
);

const stinDocumentEntity = new Document({
documentId: stinFileId,
documentType: Case.documentTypes.stin,
Expand Down
1 change: 1 addition & 0 deletions shared/src/business/useCases/updateCaseInteractor.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ exports.updateCase = async ({ caseToUpdate, caseId, applicationContext }) => {

const paidCase = new Case(caseToUpdate)
.markAsPaidByPayGov(caseToUpdate.payGovDate)
.setRequestForTrialDocketRecord(caseToUpdate.preferredTrialCity)
.updateCaseTitleDocketRecord()
.validate()
.toRawObject();
Expand Down
17 changes: 2 additions & 15 deletions web-client/src/presenter/computeds/formattedCaseDetail.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ const formatDocketRecordWithDocument = (
});
};

const formatCase = (caseDetail, caseDetailErrors, documentTypesMap) => {
const formatCase = (caseDetail, caseDetailErrors) => {
const result = _.cloneDeep(caseDetail);
result.docketRecordWithDocument = [];

Expand All @@ -174,21 +174,8 @@ const formatCase = (caseDetail, caseDetailErrors, documentTypesMap) => {
);
}

// sort to make petition first and everything else in cronological order
const getScore = entry => {
const documentType = (entry.document || {}).documentType;
if (documentType === documentTypesMap.petitionFile) return 1;
else return 2;
};

result.docketRecordWithDocument.sort((a, b) => {
const aScore = getScore(a);
const bScore = getScore(b);
if (aScore === bScore) {
return;
} else {
return aScore - bScore;
}
return a.index - b.index;
});

if (result.respondent)
Expand Down
2 changes: 1 addition & 1 deletion web-client/src/views/DocketRecord.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export const DocketRecord = connect(
</thead>
<tbody>
{caseDetail.docketRecordWithDocument.map(
({ record, document }, index) => (
({ record, document, index }) => (
<tr key={index}>
<td className="responsive-title center-column">
{index + 1}
Expand Down

0 comments on commit 93a7dc1

Please sign in to comment.