diff --git a/package.json b/package.json index 205f4e01..92546b38 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "xtend": "^4.0.2" }, "devDependencies": { - "deep-equal": "^2.0.3", "express": "^4.21.2", "form-data": "^4.0.2", "fs-temp": "^1.2.1", diff --git a/test/_util.js b/test/_util.js index a6782ad8..b6e787c6 100644 --- a/test/_util.js +++ b/test/_util.js @@ -27,3 +27,21 @@ exports.submitForm = function submitForm (multer, form, cb) { }) }) } + +exports.toNullProtoDeep = function toNullProtoDeep (value) { + if (Array.isArray(value)) { + return value.map(function (item) { return toNullProtoDeep(item) }) + } + + if (value && typeof value === 'object') { + var out = Object.create(null) + + Object.keys(value).forEach(function (key) { + out[key] = toNullProtoDeep(value[key]) + }) + + return out + } + + return value +} diff --git a/test/disk-storage.js b/test/disk-storage.js index bc923ab5..a533ae19 100644 --- a/test/disk-storage.js +++ b/test/disk-storage.js @@ -1,7 +1,6 @@ /* eslint-env mocha */ var assert = require('assert') -var deepEqual = require('deep-equal') var fs = require('fs') var path = require('path') @@ -71,9 +70,9 @@ describe('Disk Storage', function () { assert.strictEqual(req.body.version, '') assert.strictEqual(req.body.year, '') - assert(deepEqual(req.body.checkboxfull, ['cb1', 'cb2'])) - assert(deepEqual(req.body.checkboxhalfempty, ['cb1', ''])) - assert(deepEqual(req.body.checkboxempty, ['', ''])) + assert.deepStrictEqual(req.body.checkboxfull, ['cb1', 'cb2']) + assert.deepStrictEqual(req.body.checkboxhalfempty, ['cb1', '']) + assert.deepStrictEqual(req.body.checkboxempty, ['', '']) assert.strictEqual(req.file.fieldname, 'empty') assert.strictEqual(req.file.originalname, 'empty.dat') @@ -107,7 +106,7 @@ describe('Disk Storage', function () { util.submitForm(parser, form, function (err, req) { assert.ifError(err) - assert(deepEqual(req.body, {})) + assert.deepStrictEqual(req.body, util.toNullProtoDeep({})) assert.strictEqual(req.files.empty[0].fieldname, 'empty') assert.strictEqual(req.files.empty[0].originalname, 'empty.dat') @@ -158,10 +157,10 @@ describe('Disk Storage', function () { util.submitForm(parser, form, function (err, req) { assert.strictEqual(err.code, 'LIMIT_UNEXPECTED_FILE') assert.strictEqual(err.field, 'small0') - assert(deepEqual(err.storageErrors, [])) + assert.deepStrictEqual(err.storageErrors, []) var files = fs.readdirSync(uploadDir) - assert(deepEqual(files, [])) + assert.deepStrictEqual(files, []) done() }) diff --git a/test/fields.js b/test/fields.js index 1bdf6459..a5754d08 100644 --- a/test/fields.js +++ b/test/fields.js @@ -1,13 +1,20 @@ /* eslint-env mocha */ var assert = require('assert') -var deepEqual = require('deep-equal') var stream = require('stream') var util = require('./_util') var multer = require('../') var FormData = require('form-data') -var testData = require('testdata-w3c-json-form') +var rawTestData = require('testdata-w3c-json-form') + +var testData = rawTestData.map(function (t) { + return { + name: t.name, + fields: t.fields, + expected: util.toNullProtoDeep(t.expected) + } +}) describe('Fields', function () { var parser @@ -25,7 +32,7 @@ describe('Fields', function () { util.submitForm(parser, form, function (err, req) { assert.ifError(err) - assert(deepEqual(req.body, { + assert.deepStrictEqual(req.body, util.toNullProtoDeep({ name: 'Multer', key: 'value', abc: 'xyz' @@ -49,7 +56,7 @@ describe('Fields', function () { util.submitForm(parser, form, function (err, req) { assert.ifError(err) - assert(deepEqual(req.body, { + assert.deepStrictEqual(req.body, util.toNullProtoDeep({ name: 'Multer', key: '', abc: '', @@ -107,7 +114,7 @@ describe('Fields', function () { util.submitForm(parser, form, function (err, req) { assert.ifError(err) - assert(deepEqual(req.body, test.expected)) + assert.deepStrictEqual(req.body, test.expected) done() }) }) @@ -122,7 +129,7 @@ describe('Fields', function () { util.submitForm(parser, form, function (err, req) { assert.ifError(err) - assert(deepEqual(req.body, { + assert.deepStrictEqual(req.body, util.toNullProtoDeep({ obj: { 0: 'a', 2: 'c', diff --git a/test/memory-storage.js b/test/memory-storage.js index cbc3e2e5..5a9479ab 100644 --- a/test/memory-storage.js +++ b/test/memory-storage.js @@ -1,7 +1,6 @@ /* eslint-env mocha */ var assert = require('assert') -var deepEqual = require('deep-equal') var util = require('./_util') var multer = require('../') @@ -58,9 +57,9 @@ describe('Memory Storage', function () { assert.strictEqual(req.body.version, '') assert.strictEqual(req.body.year, '') - assert(deepEqual(req.body.checkboxfull, ['cb1', 'cb2'])) - assert(deepEqual(req.body.checkboxhalfempty, ['cb1', ''])) - assert(deepEqual(req.body.checkboxempty, ['', ''])) + assert.deepStrictEqual(req.body.checkboxfull, ['cb1', 'cb2']) + assert.deepStrictEqual(req.body.checkboxhalfempty, ['cb1', '']) + assert.deepStrictEqual(req.body.checkboxempty, ['', '']) assert.strictEqual(req.file.fieldname, 'empty') assert.strictEqual(req.file.originalname, 'empty.dat') @@ -95,7 +94,7 @@ describe('Memory Storage', function () { util.submitForm(parser, form, function (err, req) { assert.ifError(err) - assert(deepEqual(req.body, {})) + assert.deepStrictEqual(req.body, util.toNullProtoDeep({})) assert.strictEqual(req.files.empty[0].fieldname, 'empty') assert.strictEqual(req.files.empty[0].originalname, 'empty.dat')