mirror of
https://github.com/tenrok/axios.git
synced 2026-06-20 20:00:40 +03:00
Improved FormData support; (#4448)
* Fixed isFormData predicate;
Added support for automatic object serialization to FormData if `Content-Type` is `multipart/form-data`;
Added support for FormData to be overloaded using `config.env.FormData` option;
Added support for FormData in node.js environment through `form-data` package;
* Added the `form-data` package as a dependency for the server build;
Added tests for FormData payload;
* Added FormData automatic serialization section;
Refactored cancellation section;
* Reworked toFormData helper;
Expose toFormData helper as a static method;
Refactored transform request;
Added kindOf, kindOfTest, endsWith, isTypedArray util;
Refactored utils.js to use kindOf for tests;
* Fixed isFormData predicate; (#4413)
Added support for automatic object serialization to FormData if `Content-Type` is `multipart/form-data`;
Added support for FormData to be overloaded using `config.env.FormData` option;
Added support for FormData in node.js environment using `form-data` package;
(cherry picked from commit 73e3bdb883)
* Added shortcut methods `postForm`, `putForm`, `patchForm` to submit a Form;
Added ability to submit FileList object as a FormData;
Updated README.md;
* Updated README.md;
This commit is contained in:
@@ -1,18 +1,43 @@
|
||||
var toFormData = require("../../../lib/helpers/toFormData");
|
||||
var toFormData = require('../../../lib/helpers/toFormData');
|
||||
|
||||
describe("toFormData", function () {
|
||||
it("Convert nested data object to FormDAta", function () {
|
||||
describe('toFormData', function () {
|
||||
it('should convert nested data object to FormData', function () {
|
||||
var o = {
|
||||
val: 123,
|
||||
nested: {
|
||||
arr: ["hello", "world"],
|
||||
},
|
||||
arr: ['hello', 'world']
|
||||
}
|
||||
};
|
||||
|
||||
convertedVal = toFormData(o);
|
||||
expect(convertedVal instanceof FormData).toEqual(true);
|
||||
expect(Array.from(convertedVal.keys()).length).toEqual(3);
|
||||
expect(convertedVal.get("val")).toEqual("123")
|
||||
expect(convertedVal.get("nested.arr.0")).toEqual("hello")
|
||||
var form = toFormData(o);
|
||||
expect(form instanceof FormData).toEqual(true);
|
||||
expect(Array.from(form.keys()).length).toEqual(3);
|
||||
expect(form.get('val')).toEqual('123');
|
||||
expect(form.get('nested.arr.0')).toEqual('hello');
|
||||
});
|
||||
|
||||
it('should append value whose key ends with [] as separate values with the same key', function () {
|
||||
var data = {
|
||||
'arr[]': [1, 2, 3]
|
||||
};
|
||||
|
||||
var form = toFormData(data);
|
||||
|
||||
expect(Array.from(form.keys()).length).toEqual(3);
|
||||
expect(form.getAll('arr[]')).toEqual(['1', '2', '3']);
|
||||
});
|
||||
|
||||
it('should append value whose key ends with {} as a JSON string', function () {
|
||||
var data = {
|
||||
'obj{}': {x: 1, y: 2}
|
||||
};
|
||||
|
||||
var str = JSON.stringify(data['obj{}']);
|
||||
|
||||
var form = toFormData(data);
|
||||
|
||||
expect(Array.from(form.keys()).length).toEqual(1);
|
||||
expect(form.getAll('obj{}')).toEqual([str]);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user