36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
|
var tap = require("tap")
|
||
|
var normalize = require("../lib/normalize")
|
||
|
var path = require("path")
|
||
|
var fs = require("fs")
|
||
|
var _ = require("underscore")
|
||
|
var async = require("async")
|
||
|
|
||
|
var data, clonedData
|
||
|
var warn
|
||
|
|
||
|
tap.test("consistent normalization", function(t) {
|
||
|
path.resolve(__dirname, "./fixtures/read-package-json.json")
|
||
|
fs.readdir (__dirname + "/fixtures", function (err, entries) {
|
||
|
// entries = ['coffee-script.json'] // uncomment to limit to a specific file
|
||
|
verifyConsistency = function(entryName, next) {
|
||
|
warn = function(msg) {
|
||
|
// t.equal("",msg) // uncomment to have some kind of logging of warnings
|
||
|
}
|
||
|
filename = __dirname + "/fixtures/" + entryName
|
||
|
fs.readFile(filename, function(err, contents) {
|
||
|
if (err) return next(err)
|
||
|
data = JSON.parse(contents.toString())
|
||
|
normalize(data, warn)
|
||
|
clonedData = _.clone(data)
|
||
|
normalize(data, warn)
|
||
|
t.deepEqual(clonedData, data,
|
||
|
"Normalization of " + entryName + " is consistent.")
|
||
|
next(null)
|
||
|
}) // fs.readFile
|
||
|
} // verifyConsistency
|
||
|
async.forEach(entries, verifyConsistency, function(err) {
|
||
|
if (err) throw err
|
||
|
t.end()
|
||
|
})
|
||
|
}) // fs.readdir
|
||
|
}) // tap.test
|