text: 'use strict';
  
  const request = require('supertest');
  const server = require('./server');
  const app = server.app;
  
  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.');
        });
    });
  });
  