diff --git a/js/components/__tests__/requests_list.test.js b/js/components/__tests__/requests_list.test.js index e7d681bc..eec10004 100644 --- a/js/components/__tests__/requests_list.test.js +++ b/js/components/__tests__/requests_list.test.js @@ -55,5 +55,21 @@ describe('RequestsList', () => { const requestNames = displayedRequests.map(req => req.name) expect(requestNames).toEqual(['X Wing', 'TIE Fighter']) }) + + it('handles sorting with un-submitted requests', () => { + const unsubmittedRequest = { + name: 'Death Star', + status: 'Started', + last_submission_timestamp: null + } + const wrapper = shallowMount(RequestsList, { + propsData: { + requests: [unsubmittedRequest, ...requests], + isExtended: true + } + }) + const displayedRequests = wrapper.vm.filteredRequests + expect(displayedRequests).toEqual([requests[1], requests[0], unsubmittedRequest]) + }) }) }) diff --git a/js/components/requests_list.js b/js/components/requests_list.js index ec9f9282..735dcdd3 100644 --- a/js/components/requests_list.js +++ b/js/components/requests_list.js @@ -1,7 +1,7 @@ import LocalDatetime from '../components/local_datetime' import { formatDollars } from '../lib/dollars' import { parse } from 'date-fns' -import { compose, partial, indexBy, prop, sortBy, reverse, pipe } from 'ramda' +import { compose, partial, indexBy, prop, propOr, sortBy, reverse, pipe } from 'ramda' export default { name: 'requests-list', @@ -32,7 +32,7 @@ export default { data: function () { const defaultSort = (sort, requests) => sortBy(prop(sort.columnName), requests) const dateSort = (sort, requests) => { - const parseDate = compose(partial(parse), prop(sort.columnName)) + const parseDate = compose(partial(parse), propOr(sort.columnName, '')) return sortBy(parseDate, requests) } diff --git a/templates/requests/index.html b/templates/requests/index.html index c5257c7e..ce185a34 100644 --- a/templates/requests/index.html +++ b/templates/requests/index.html @@ -137,7 +137,14 @@ !{ r.name } Action Required - + + + + + {% if extended_view %} !{ r.full_name }