From 85f094af5969d7ddfc057e6299a35633f04ff871 Mon Sep 17 00:00:00 2001 From: Olivier Leger Date: Thu, 3 Feb 2022 11:12:20 -0500 Subject: [PATCH] Add tests --- .../submissions/submissionUtils.mocks.es6 | 34 +++++++++++++++++++ .../submissions/submissionUtils.tests.es6 | 21 +++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/jsapp/js/components/submissions/submissionUtils.mocks.es6 b/jsapp/js/components/submissions/submissionUtils.mocks.es6 index df39afaed6..e321a3b51f 100644 --- a/jsapp/js/components/submissions/submissionUtils.mocks.es6 +++ b/jsapp/js/components/submissions/submissionUtils.mocks.es6 @@ -1679,3 +1679,37 @@ export const matrixRepeatSurveyDisplayData = [ ], }, ]; + +export const submissionWithAttachmentsWithUnicode = { + '_id': 18, + 'A_picture': 'Un été au Québec (Canada)-19_41_32.jpg', + 'meta/instanceID': 'uuid:4cfa16e8-f29b-41a9-984c-2bf7fe05064b', + 'meta/deprecatedID': 'uuid:f79e88d3-2329-40c7-ab7a-66dde871480c', + 'formhub/uuid': '45748fd461814880bd9545c8c8827d78', + '__version__': 'vUdsH7ovQn4eCdBtPJyBag', + '_xform_id_string': 'azCy24QgjprZGrdvbHQXr3', + '_uuid': '4cfa16e8-f29b-41a9-984c-2bf7fe05064b', + '_attachments': [ + { + download_url: 'http://kc.kobo.local/media/original?media_file=kobo%2Fattachments%2F45748fd461814880bd9545c8c8827d78%2F4cfa16e8-f29b-41a9-984c-2bf7fe05064b%2FUn_ete_au_Quebec_Canada-19_41_32.jpg', + download_large_url: 'http://kc.kobo.local/media/large?media_file=kobo%2Fattachments%2F45748fd461814880bd9545c8c8827d78%2F4cfa16e8-f29b-41a9-984c-2bf7fe05064b%2FUn_ete_au_Quebec_Canada-19_41_32.jpg', + download_medium_url: 'http://kc.kobo.local/media/medium?media_file=kobo%2Fattachments%2F45748fd461814880bd9545c8c8827d78%2F4cfa16e8-f29b-41a9-984c-2bf7fe05064b%2FUn_ete_au_Quebec_Canada-19_41_32.jpg', + download_small_url: 'http://kc.kobo.local/media/small?media_file=kobo%2Fattachments%2F45748fd461814880bd9545c8c8827d78%2F4cfa16e8-f29b-41a9-984c-2bf7fe05064b%2FUn_ete_au_Quebec_Canada-19_41_32.jpgg', + mimetype: 'image/jpeg', + filename: 'kobo/attachments/45748fd461814880bd9545c8c8827d78/4cfa16e8-f29b-41a9-984c-2bf7fe05064b/Un_ete_au_Quebec_Canada-19_41_32.jpg', + instance: 18, + xform: 4, + id: 13 + }, + ], + _geolocation: [ + null, + null + ], + _notes: [], + _tags: [], + _status: 'submitted_via_web', + _submission_time: '2022-01-26T19:40:11', + _submitted_by: null, + _validation_status: {} +} diff --git a/jsapp/js/components/submissions/submissionUtils.tests.es6 b/jsapp/js/components/submissions/submissionUtils.tests.es6 index 32c1777748..1d556cbb22 100644 --- a/jsapp/js/components/submissions/submissionUtils.tests.es6 +++ b/jsapp/js/components/submissions/submissionUtils.tests.es6 @@ -27,8 +27,9 @@ import { matrixRepeatSurveyChoices, matrixRepeatSurveySubmission, matrixRepeatSurveyDisplayData, + submissionWithAttachmentsWithUnicode, } from './submissionUtils.mocks'; -import {getSubmissionDisplayData} from './submissionUtils'; +import {getValidFilename, getMediaAttachment, getSubmissionDisplayData} from './submissionUtils'; describe('getSubmissionDisplayData', () => { it('should return a valid data for a survey with a group', () => { @@ -79,3 +80,21 @@ describe('getSubmissionDisplayData', () => { expect(test).to.deep.equal(target); }); }); + +describe('getValidFilename', () => { + it('should return a file name which matches Django renaming', () => { + const fileName = submissionWithAttachmentsWithUnicode.A_picture; + const test = getValidFilename(fileName); + const target = 'Un_ete_au_Quebec_Canada-19_41_32.jpg'; + expect(test).to.equal(target); + }); +}); + +describe('getMediaAttachment', () => { + it('should return an attachment object', () => { + const fileName = submissionWithAttachmentsWithUnicode.A_picture; + const test = getMediaAttachment(submissionWithAttachmentsWithUnicode, fileName); + const target = submissionWithAttachmentsWithUnicode._attachments[0]; + expect(test).to.deep.equal(target); + }); +});