You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.0 KiB
86 lines
2.0 KiB
4 years ago
|
'use strict';
|
||
|
|
||
|
const request = require('supertest');
|
||
|
const server = require('./server');
|
||
|
const app = server.setup();
|
||
|
|
||
|
let mockUser = {
|
||
|
firstName: 'Joe',
|
||
|
lastName: 'Schmo',
|
||
|
email: 'joe@mailinator.com'
|
||
|
};
|
||
|
|
||
|
let mockCars = [
|
||
|
'rsx',
|
||
|
'tsx',
|
||
|
'civic',
|
||
|
'integra'
|
||
|
];
|
||
|
|
||
|
describe('Test Multipart Form Single Field Submissions', function() {
|
||
|
it('submit multipart user data with POST', function(done) {
|
||
|
request(app)
|
||
|
.post('/fields/user')
|
||
|
.field('firstName', mockUser.firstName)
|
||
|
.field('lastName', mockUser.lastName)
|
||
|
.field('email', mockUser.email)
|
||
|
.expect('Content-Type', /json/)
|
||
|
.expect(200, {
|
||
|
firstName: mockUser.firstName,
|
||
|
lastName: mockUser.lastName,
|
||
|
email: mockUser.email
|
||
|
}, done);
|
||
|
});
|
||
|
|
||
|
it('submit multipart user data with PUT', function(done) {
|
||
|
request(app)
|
||
|
.post('/fields/user')
|
||
|
.field('firstName', mockUser.firstName)
|
||
|
.field('lastName', mockUser.lastName)
|
||
|
.field('email', mockUser.email)
|
||
|
.expect('Content-Type', /json/)
|
||
|
.expect(200, {
|
||
|
firstName: mockUser.firstName,
|
||
|
lastName: mockUser.lastName,
|
||
|
email: mockUser.email
|
||
|
}, done);
|
||
|
});
|
||
|
|
||
|
it('fail when user data submitted without multipart', function(done) {
|
||
|
request(app)
|
||
|
.post('/fields/user')
|
||
|
.send(mockUser)
|
||
|
.expect(400)
|
||
|
.end(done);
|
||
|
});
|
||
|
|
||
|
it('fail when user data not submitted', function(done) {
|
||
|
request(app)
|
||
|
.post('/fields/user')
|
||
|
.expect(400)
|
||
|
.end(done);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('Test Multipart Form Array Field Submissions', function() {
|
||
|
it('submit array of data with POST', function(done) {
|
||
|
let req = request(app).post('/fields/array');
|
||
|
|
||
|
for (let i = 0; i < mockCars.length; i++) {
|
||
|
req.field('testField', mockCars[i]);
|
||
|
}
|
||
|
|
||
|
req
|
||
|
.expect(200)
|
||
|
.end(function(err, res) {
|
||
|
if (err) {
|
||
|
return done(err);
|
||
|
}
|
||
|
|
||
|
let responseMatchesRequest = res.body.join(',') === mockCars.join(',');
|
||
|
|
||
|
done(responseMatchesRequest ? null : 'Data was returned as expected.');
|
||
|
});
|
||
|
});
|
||
|
});
|