Skip to content

Commit 9785534

Browse files
committed
adding more tests
1 parent 9e3361a commit 9785534

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

test/multipartUploads.spec.js

+37
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ const mockFiles = [
1515
'basketball.png'
1616
];
1717

18+
let mockUser = {
19+
firstName: 'Joe',
20+
lastName: 'Schmo',
21+
22+
};
23+
1824
describe('Test Directory Cleaning Method', function() {
1925
it('emptied "uploads" directory', function(done) {
2026
clearUploadsDir();
@@ -151,3 +157,34 @@ describe('Test File Array Upload', function() {
151157
});
152158
});
153159
});
160+
161+
describe('Test Upload With Fields', function() {
162+
for (let i = 0; i < mockFiles.length; i++) {
163+
let fileName = mockFiles[i];
164+
165+
it(`upload ${fileName} and submit fields at the same time`, function(done) {
166+
let filePath = path.join(fileDir, fileName);
167+
let uploadedFilePath = path.join(uploadDir, fileName);
168+
169+
clearUploadsDir();
170+
171+
request(app)
172+
.post('/upload/single/withfields')
173+
.attach('testFile', filePath)
174+
.field('firstName', mockUser.firstName)
175+
.field('lastName', mockUser.lastName)
176+
.field('email', mockUser.email)
177+
.expect(200, {
178+
firstName: mockUser.firstName,
179+
lastName: mockUser.lastName,
180+
email: mockUser.email
181+
},
182+
function(err, res) {
183+
if (err)
184+
return done(err);
185+
186+
fs.stat(uploadedFilePath, done);
187+
});
188+
});
189+
}
190+
});

test/server.js

+31
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,37 @@ app.all('/upload/single', function(req, res) {
3535
});
3636
});
3737

38+
app.all('/upload/single/withfields', function(req, res) {
39+
if (!req.files)
40+
return res.status(400).send('No files were uploaded.');
41+
42+
if (!req.body)
43+
return res.status(400).send('No request body found');
44+
45+
if (!req.body.firstName || !req.body.firstName.trim())
46+
return res.status(400).send('Invalid first name');
47+
48+
if (!req.body.lastName || !req.body.lastName.trim())
49+
return res.status(400).send('Invalid last name');
50+
51+
if (!req.body.email || !req.body.email.trim())
52+
return res.status(400).send('Invalid email');
53+
54+
let testFile = req.files.testFile;
55+
let uploadPath = path.join(uploadDir, testFile.name);
56+
57+
testFile.mv(uploadPath, function(err) {
58+
if (err)
59+
return res.status(500).send(err);
60+
61+
res.json({
62+
firstName: req.body.firstName,
63+
lastName: req.body.lastName,
64+
email: req.body.email
65+
});
66+
});
67+
});
68+
3869
app.all('/upload/multiple', function(req, res) {
3970
if (!req.files)
4071
return res.status(400).send('No files were uploaded.');

0 commit comments

Comments
 (0)