diff --git a/src/form-builder/components/FormList.jsx b/src/form-builder/components/FormList.jsx
index 973632e..c6dffb2 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 {
{this._privilegesIcon(rowItem)}
this.pdfPreview(index)}
+ onClick={() => this.downloadPDFFile(index)}
>
@@ -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 1e3671e..2fd7897 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,