You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.1 KiB

'use strict'
var test = require('tap').test
var Parse = require('./')
function successTests (value) {
test('parse successfully with the function', function (t) {
t.plan(2)
var result = Parse(value)
t.error(result.err)
t.deepEqual(result.value, JSON.parse(value))
})
test('parse successfully with the constructor', function (t) {
t.plan(2)
var result = new Parse(value)
t.error(result.err)
t.deepEqual(result.value, JSON.parse(value))
})
}
function failureTests (value) {
var expectedErr
try {
JSON.parse(value)
} catch (err) {
expectedErr = err
}
test('parse unsuccessfully with the function', function (t) {
t.plan(2)
var result = Parse(value)
t.notOk(result.value, 'no value')
t.equal(result.err.message, expectedErr.message)
})
test('parse successfully with the constructor', function (t) {
t.plan(2)
var result = new Parse(value)
t.notOk(result.value, 'no value')
t.equal(result.err.message, expectedErr.message)
})
}
successTests('{ "object": 32 }')
failureTests('{ "object": 32')