From 09cfcbe5e917d9533df9cfa3fd60df545ebb532a Mon Sep 17 00:00:00 2001 From: Shweta Tikhe Date: Wed, 4 Nov 2026 12:28:55 +0530 Subject: [PATCH] BAH-5274 | Fix pdf form download button in Form builder --- src/form-builder/components/FormList.jsx | 6 ++-- test/form-builder/components/FormList.spec.js | 29 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/form-builder/components/FormList.jsx b/src/form-builder/components/FormList.jsx index 973632e3..c6dffb26 100644 --- a/src/form-builder/components/FormList.jsx +++ b/src/form-builder/components/FormList.jsx @@ -53,7 +53,7 @@ export default class FormList extends Component { @@ -88,9 +88,9 @@ export default class FormList extends Component { console.log(formData); try { httpInterceptor.post(formBuilderConstants.jsonToPdfConvertionUrl, formData).then((response) => { - let fileName = response.pdfName; + const fileName = response.pdfName; const link = formBuilderConstants.pdfDownloadUrl + fileName; - window.open(`/pdf/${fileName}`, '_self'); + window.open(link, '_self'); }); } catch (error) { console.log('error state'); diff --git a/test/form-builder/components/FormList.spec.js b/test/form-builder/components/FormList.spec.js index 1e3671e9..2fd78977 100644 --- a/test/form-builder/components/FormList.spec.js +++ b/test/form-builder/components/FormList.spec.js @@ -203,6 +203,35 @@ describe('FormList', () => { }, 500); }); + it('should call downloadPDFFile and open the download link when PDF icon be clicked', (done) => { + const formJson = { name: 'BP', version: '1.2' }; + const translations = []; + const pdfResponse = { pdfName: 'BP_1.2.pdf' }; + const getStub = sinon.stub(httpInterceptor, 'get'); + getStub.onFirstCall().returns(Promise.resolve(formJson)) + .onSecondCall().returns(Promise.resolve(translations)); + const postStub = sinon.stub(httpInterceptor, 'post').returns(Promise.resolve(pdfResponse)); + const windowOpenStub = sinon.stub(window, 'open'); + + wrapper = shallow(); + const pdfElement = getItem(1, 5).find('.fa-file-pdf-o').parent(); + pdfElement.simulate('click'); + + setTimeout(() => { + sinon.assert.calledOnce(postStub); + sinon.assert.calledWith(postStub, formBuilderConstants.jsonToPdfConvertionUrl); + sinon.assert.calledWith( + windowOpenStub, + `${formBuilderConstants.pdfDownloadUrl}${pdfResponse.pdfName}`, + '_self' + ); + getStub.restore(); + postStub.restore(); + windowOpenStub.restore(); + done(); + }, 500); + }); + it('should show translate button only for latest Published forms', () => { const form = { id: 4,