--- /dev/null
+var fs = require('fs')
+var path = require('path')
+
+var tap = require('tap')
+
+var readJson = require('../')
+
+var readme = fs.readFileSync(path.resolve(__dirname, '../README.md'), 'utf8')
+var pkg = require('../package.json')
+var isGit
+try {
+ fs.readFileSync(path.resolve(__dirname, '../.git/HEAD'))
+ isGit = true
+} catch (e) {
+ isGit = false
+}
+
+tap.test('basic test', function (t) {
+ var p = path.resolve(__dirname, '../package.json')
+ readJson(p, function (er, data) {
+ if (er) throw er
+ basic_(t, data)
+ })
+})
+
+function basic_ (t, data) {
+ t.ok(data)
+ t.equal(data.version, pkg.version)
+ t.equal(data._id, data.name + '@' + data.version)
+ t.equal(data.name, pkg.name)
+ t.type(data.author, 'object')
+ t.equal(data.readme, readme)
+ t.deepEqual(data.scripts, pkg.scripts)
+ t.equal(data.main, pkg.main)
+ t.equal(data.readmeFilename, 'README.md')
+
+ if (isGit) t.similar(data.gitHead, /^[a-f0-9]{40}$/)
+
+ // optional deps are folded in.
+ t.deepEqual(data.optionalDependencies, pkg.optionalDependencies)
+ t.has(data.dependencies, pkg.optionalDependencies)
+ t.has(data.dependencies, pkg.dependencies)
+
+ t.deepEqual(data.devDependencies, pkg.devDependencies)
+ t.end()
+}