test: add test for multipart keeping order (#27787)
Test for https://github.com/microsoft/playwright/issues/27720
This commit is contained in:
parent
1afeff5be0
commit
5f0d91a42c
|
|
@ -920,7 +920,7 @@ it('should support multipart/form-data', async function({ context, server }) {
|
|||
expect(response.status()).toBe(200);
|
||||
});
|
||||
|
||||
it('should support multipart/form-data with ReadSream values', async function({ context, page, asset, server }) {
|
||||
it('should support multipart/form-data with ReadStream values', async function({ context, page, asset, server }) {
|
||||
const formReceived = new Promise<{error: any, fields: formidable.Fields, files: Record<string, formidable.File>, serverRequest: IncomingMessage}>(resolve => {
|
||||
server.setRoute('/empty.html', async (serverRequest, res) => {
|
||||
const form = new formidable.IncomingForm();
|
||||
|
|
@ -953,6 +953,35 @@ it('should support multipart/form-data with ReadSream values', async function({
|
|||
expect(response.status()).toBe(200);
|
||||
});
|
||||
|
||||
it('should support multipart/form-data and keep the order', async function({ context, page, asset, server }) {
|
||||
const given = {
|
||||
firstName: 'John',
|
||||
lastName: 'Doe',
|
||||
age: 27,
|
||||
};
|
||||
given['foo'] = 'bar';
|
||||
const givenKeys = Object.keys(given);
|
||||
const formReceived = new Promise<{error: any, fields: formidable.Fields}>(resolve => {
|
||||
server.setRoute('/empty.html', async (serverRequest, res) => {
|
||||
const form = new formidable.IncomingForm();
|
||||
form.parse(serverRequest, (error, fields, files) => {
|
||||
server.serveFile(serverRequest, res);
|
||||
resolve({ error, fields });
|
||||
});
|
||||
});
|
||||
});
|
||||
const [{ error, fields }, response] = await Promise.all([
|
||||
formReceived,
|
||||
context.request.post(server.EMPTY_PAGE, {
|
||||
multipart: given,
|
||||
})
|
||||
]);
|
||||
expect(error).toBeFalsy();
|
||||
const actualKeys = Object.keys(fields);
|
||||
expect(actualKeys).toEqual(givenKeys);
|
||||
expect(response.status()).toBe(200);
|
||||
});
|
||||
|
||||
it('should serialize data to json regardless of content-type', async function({ context, server }) {
|
||||
const data = {
|
||||
firstName: 'John',
|
||||
|
|
|
|||
Loading…
Reference in a new issue