Merge pull request #2 from StevanFreeborn/fix/file-name-bug

fix: file name bug
This commit is contained in:
Stevan Freeborn
2023-02-21 16:46:03 -06:00
committed by GitHub
3 changed files with 51 additions and 51 deletions
+1 -4
View File
@@ -261,13 +261,10 @@ export class ApiResponse<T> {
public asFileType(response: AxiosResponse): ApiResponse<File> {
const apiResponse = this as ApiResponse<any>;
let fileName = response.headers['content-disposition']
const fileName = response.headers['content-disposition']
.split(';')[1]
.split('=')[1];
fileName = fileName.substring(1, fileName.length - 1);
const contentType =
response.headers['content-type'] ??
response.headers['Content-Type'] ??
+23 -21
View File
@@ -1,33 +1,33 @@
import { ApiResponse } from '../src/models/ApiResponse';
import { type AxiosResponse } from 'axios';
import { expect } from 'chai';
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
import { App } from '../src/models/App';
import { CollectionResponse } from '../src/models/CollectionResponse';
import { Field } from '../src/models/Field';
import fs from 'fs';
import path from 'path';
import { FieldStatus } from '../src/enums/FieldStatus';
import { FieldType } from '../src/enums/FieldType';
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
import { FormulaField } from '../src/models/FormulaField';
import { FormulaOutputType } from '../src/enums/FormulaOutputType';
import { ListValue } from '../src/models/ListValue';
import { ReferenceField } from '../src/models/ReferenceField';
import { Multiplicity } from '../src/enums/Multiplicity';
import { ListField } from '../src/models/ListField';
import { ApiResponse } from '../src/models/ApiResponse';
import { App } from '../src/models/App';
import { CollectionResponse } from '../src/models/CollectionResponse';
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
import { Field } from '../src/models/Field';
import { File } from '../src/models/File';
import { ListItemResponse } from '../src/models/ListItemResponse';
import { FormulaField } from '../src/models/FormulaField';
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
import { ListField } from '../src/models/ListField';
import { ListItemResponse } from '../src/models/ListItemResponse';
import { ListValue } from '../src/models/ListValue';
import { Record } from '../src/models/Record';
import { RecordValue } from '../src/models/RecordValue';
import { ReferenceField } from '../src/models/ReferenceField';
import { Report } from '../src/models/Report';
import { ReportData } from '../src/models/ReportData';
import { Row } from '../src/models/Row';
import { Record } from '../src/models/Record';
import { RecordValue } from '../src/models/RecordValue';
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
import { testFieldData } from './testData/testFieldData';
import { type AxiosResponse } from 'axios';
import path from 'path';
import fs from 'fs';
import { SaveRecordResponse } from '../src/models/SaveRecordResponse';
import { testFieldData } from './testData/testFieldData';
describe('ApiResponse', function () {
it('should be defined', function () {
@@ -807,7 +807,8 @@ describe('ApiResponse', function () {
const mockResponse = {
headers: {
'content-type': 'text/plain',
'content-disposition': 'attachment; filename="test-attachment.txt"',
'content-disposition':
"attachment; filename=test-attachment.txt; filename*=UTF-8''test-attachment.txt",
'Content-Length': '13',
} as AxiosResponse['headers'],
} as AxiosResponse;
@@ -837,7 +838,8 @@ describe('ApiResponse', function () {
const mockResponse = {
headers: {
'content-type': 'image/jpeg',
'content-disposition': 'attachment; filename="test-image.jpeg"',
'content-disposition':
"attachment; filename=test-image.jpeg; filename*=UTF-8''test-image.jpeg",
'Content-Length': '98897',
} as AxiosResponse['headers'],
} as AxiosResponse;
+27 -26
View File
@@ -1,37 +1,37 @@
import { OnspringClient } from '../src/models/OnspringClient';
import { ApiResponse } from '../src/models/ApiResponse';
import axios, {
type AxiosResponse,
type InternalAxiosRequestConfig,
} from 'axios';
import { expect } from 'chai';
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
import { App } from '../src/models/App';
import { CollectionResponse } from '../src/models/CollectionResponse';
import { Field } from '../src/models/Field';
import { FieldStatus } from '../src/enums/FieldStatus';
import { FieldType } from '../src/enums/FieldType';
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
import { SaveFileRequest } from '../src/models/SaveFileRequest';
import { Readable } from 'stream';
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
import { FileInfo } from '../src/models/FileInfo';
import { File } from '../src/models/File';
import { ListItemRequest } from '../src/models/ListItemRequest';
import { ListItemResponse } from '../src/models/ListItemResponse';
import { Report } from '../src/models/Report';
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
import { ReportData } from '../src/models/ReportData';
import { GetRecordRequest } from '../src/models/GetRecordRequest';
import { Record } from '../src/models/Record';
import { RecordValue } from '../src/models/RecordValue';
import { GetRecordsByAppIdRequest } from '../src/models/GetRecordsByAppIdRequest';
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
import { GetRecordsRequest } from '../src/models/GetRecordsRequest';
import fs from 'fs';
import path from 'path';
import * as sinon from 'sinon';
import { Readable } from 'stream';
import { FieldStatus } from '../src/enums/FieldStatus';
import { FieldType } from '../src/enums/FieldType';
import { ApiResponse } from '../src/models/ApiResponse';
import { App } from '../src/models/App';
import { CollectionResponse } from '../src/models/CollectionResponse';
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
import { Field } from '../src/models/Field';
import { File } from '../src/models/File';
import { FileInfo } from '../src/models/FileInfo';
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
import { GetRecordRequest } from '../src/models/GetRecordRequest';
import { GetRecordsByAppIdRequest } from '../src/models/GetRecordsByAppIdRequest';
import { GetRecordsRequest } from '../src/models/GetRecordsRequest';
import { ListItemRequest } from '../src/models/ListItemRequest';
import { ListItemResponse } from '../src/models/ListItemResponse';
import { OnspringClient } from '../src/models/OnspringClient';
import { QueryRecordsRequest } from '../src/models/QueryRecordsRequest';
import { Record } from '../src/models/Record';
import { RecordValue } from '../src/models/RecordValue';
import { Report } from '../src/models/Report';
import { ReportData } from '../src/models/ReportData';
import { SaveFileRequest } from '../src/models/SaveFileRequest';
import { SaveRecordRequest } from '../src/models/SaveRecordRequest';
describe('OnspringClient', function () {
@@ -1796,7 +1796,8 @@ describe('OnspringClient', function () {
statusText: 'OK',
data: file,
headers: {
'content-disposition': 'attachment; filename="test-attachment.txt"',
'content-disposition':
"attachment; filename=test-attachment.txt; filename*=UTF-8''test-attachment.txt",
'content-length': 14,
'content-type': 'text/plain',
},