diff.js/test.js

110 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

#!/usr/bin/env node
/**********************************************************************
*
* test.js
*
* Repo and docs:
* https://github.com/flynx/test.js
*
***********************************************/ /* c8 ignore next 2 */
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
(function(require){ var module={} // make module AMD/node compatible...
/*********************************************************************/
var test = require('ig-test')
var diff = require('./diff')
var format = require('./format')
//---------------------------------------------------------------------
test.Setups({
// XXX make this return a list...
basic: function(assert){
return [
{
A: {}, B: {},
cmp: true,
},
{
A: [], B: [],
cmp: true,
},
{
A: 0, B: 0,
cmp: true,
},
{
A: 123, B: 123,
cmp: true,
},
{
A: false, B: false,
cmp: true,
},
{
A: undefined, B: undefined,
cmp: true,
},
// XXX special case -- fails....
{
A: NaN, B: NaN,
cmp: true,
},
] },
})
test.Tests({
cmp: function(assert, setup){
setup = setup instanceof Array ? setup : [setup]
setup.forEach(function(e){
var res
'cmp' in e
&& assert(
(res = diff.cmp(e.A, e.B)) == e.cmp,
`cmp(..): cmp(${e.A}, ${e.B}) should be ${e.cmp} got ${res}`) }) },
})
test.Cases({
'basics': function(assert){
// XXX move reference objects + expected diffs to setups
var a = {}
var b = {}
assert(diff.Diff(a, b), 'Diff(..)')
},
recursion: function(assert){
var a = {}
a.x = a
var b = {}
b.x = b
assert(diff.cmp(a, b), 'recursive cmp(..)')
a = {}
a.x = a
b = {}
b.y = b
assert(!diff.cmp(a, b), 'recursive !cmp(..)')
a = {}
a.x = a
b = {x: {}}
assert(!diff.cmp(a, b), 'recursive cmp(..)')
},
})
//---------------------------------------------------------------------
typeof(__filename) != 'undefined'
&& __filename == (require.main || {}).filename
&& test.run()
/**********************************************************************
* vim:set ts=4 sw=4 : */ return module })