diff --git a/src/components/submission/list.vue b/src/components/submission/list.vue index cc27bbfd4..22ef1e103 100644 --- a/src/components/submission/list.vue +++ b/src/components/submission/list.vue @@ -266,11 +266,8 @@ export default { } ), clear: clear && !refresh, - patch: (loaded > 0 && !clear) || (loaded > 0 && refresh) - ? (response) => { - if (clear && refresh) this.odata.removeData(); - this.odata.addChunk(response.data); - } + patch: loaded > 0 && !clear && !refresh + ? (response) => this.odata.addChunk(response.data) : null }) .finally(() => { this.refreshing = false; }) diff --git a/src/request-data/submissions.js b/src/request-data/submissions.js index 802a7e741..bec678ac9 100644 --- a/src/request-data/submissions.js +++ b/src/request-data/submissions.js @@ -32,9 +32,6 @@ export default () => { nextLink: data['@odata.nextLink'] }); }, - removeData() { - odata.value.splice(0, odata.value.length); - }, addChunk(chunk) { for (const submission of chunk.value) { odata.value.push(submission); diff --git a/test/components/submission/list.spec.js b/test/components/submission/list.spec.js index 4907d38f9..dd6b907a8 100644 --- a/test/components/submission/list.spec.js +++ b/test/components/submission/list.spec.js @@ -112,6 +112,24 @@ describe('SubmissionList', () => { }) .respondWithData(testData.submissionOData); }); + + it('should show correct row number after refresh', () => { + testData.extendedSubmissions.createPast(1); + return loadSubmissionList() + .complete() + .request(component => + component.get('#submission-list-refresh-button').trigger('click')) + .beforeEachResponse(component => { + testData.extendedSubmissions.createPast(1); + component.get('#odata-loading-message').should.be.hidden(); + }) + .respondWithData(testData.submissionOData) + .afterResponse(component => { + component.findAllComponents(SubmissionMetadataRow).forEach((r, i) => { + r.props().rowNumber.should.be.equal(2 - i); + }); + }); + }); }); describe('load by chunk', () => {