From 6272eeda23109f49cd54998bbd222965ac895b6a Mon Sep 17 00:00:00 2001 From: Yury Shkoda Date: Mon, 10 Jul 2023 19:14:47 +0300 Subject: [PATCH] fix(form-data): fixed formData type check --- src/file/generateFileUploadForm.ts | 9 ++++++--- src/file/spec/generateFileUploadForm.spec.ts | 8 +++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/file/generateFileUploadForm.ts b/src/file/generateFileUploadForm.ts index 0fc695f..efb4792 100644 --- a/src/file/generateFileUploadForm.ts +++ b/src/file/generateFileUploadForm.ts @@ -1,5 +1,6 @@ import * as NodeFormData from 'form-data' import { convertToCSV } from '../utils/convertToCsv' +import { isNode } from '../utils' /** * One of the approaches SASjs takes to send tables-formatted JSON (see README) @@ -26,12 +27,14 @@ export const generateFileUploadForm = ( ) } - if (formData instanceof NodeFormData) { - formData.append(name, csv, { + if (isNode()) { + // environment is Node and formData is instance of NodeFormData + ;(formData as NodeFormData).append(name, csv, { filename: `${name}.csv`, contentType: 'application/csv' }) - } else if (formData instanceof FormData) { + } else { + // environment is Browser and formData is instance of FormData const file = new Blob([csv], { type: 'application/csv' }) diff --git a/src/file/spec/generateFileUploadForm.spec.ts b/src/file/spec/generateFileUploadForm.spec.ts index 62db1d5..1dc9db9 100644 --- a/src/file/spec/generateFileUploadForm.spec.ts +++ b/src/file/spec/generateFileUploadForm.spec.ts @@ -1,6 +1,7 @@ import { generateFileUploadForm } from '../generateFileUploadForm' -import * as NodeFormData from 'form-data' import { convertToCSV } from '../../utils/convertToCsv' +import * as NodeFormData from 'form-data' +import * as isNodeModule from '../../utils/isNode' describe('generateFileUploadForm', () => { beforeAll(() => { @@ -14,6 +15,10 @@ describe('generateFileUploadForm', () => { }) describe('browser', () => { + afterAll(() => { + jest.restoreAllMocks() + }) + it('should generate file upload form from data', () => { const formData = new FormData() const testTable = 'sometable' @@ -33,6 +38,7 @@ describe('generateFileUploadForm', () => { )[0] jest.spyOn(formData, 'append').mockImplementation(() => {}) + jest.spyOn(isNodeModule, 'isNode').mockImplementation(() => false) generateFileUploadForm(formData, testTableWithNullVars)