123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- 'use strict';
- module.exports = [
- {
- description: 'scalars',
- tests: [
- {
- description: 'equal numbers',
- value1: 1,
- value2: 1,
- equal: true
- },
- {
- description: 'not equal numbers',
- value1: 1,
- value2: 2,
- equal: false
- },
- {
- description: 'number and array are not equal',
- value1: 1,
- value2: [],
- equal: false
- },
- {
- description: '0 and null are not equal',
- value1: 0,
- value2: null,
- equal: false
- },
- {
- description: 'equal strings',
- value1: 'a',
- value2: 'a',
- equal: true
- },
- {
- description: 'not equal strings',
- value1: 'a',
- value2: 'b',
- equal: false
- },
- {
- description: 'empty string and null are not equal',
- value1: '',
- value2: null,
- equal: false
- },
- {
- description: 'null is equal to null',
- value1: null,
- value2: null,
- equal: true
- },
- {
- description: 'equal booleans (true)',
- value1: true,
- value2: true,
- equal: true
- },
- {
- description: 'equal booleans (false)',
- value1: false,
- value2: false,
- equal: true
- },
- {
- description: 'not equal booleans',
- value1: true,
- value2: false,
- equal: false
- },
- {
- description: '1 and true are not equal',
- value1: 1,
- value2: true,
- equal: false
- },
- {
- description: '0 and false are not equal',
- value1: 0,
- value2: false,
- equal: false
- }
- ]
- },
- {
- description: 'objects',
- tests: [
- {
- description: 'empty objects are equal',
- value1: {},
- value2: {},
- equal: true
- },
- {
- description: 'equal objects (same properties "order")',
- value1: {a: 1, b: '2'},
- value2: {a: 1, b: '2'},
- equal: true
- },
- {
- description: 'equal objects (different properties "order")',
- value1: {a: 1, b: '2'},
- value2: {b: '2', a: 1},
- equal: true
- },
- {
- description: 'not equal objects (extra property)',
- value1: {a: 1, b: '2'},
- value2: {a: 1, b: '2', c: []},
- equal: false
- },
- {
- description: 'not equal objects (different properties)',
- value1: {a: 1, b: '2', c: 3},
- value2: {a: 1, b: '2', d: 3},
- equal: false
- },
- {
- description: 'not equal objects (different properties)',
- value1: {a: 1, b: '2', c: 3},
- value2: {a: 1, b: '2', d: 3},
- equal: false
- },
- {
- description: 'equal objects (same sub-properties)',
- value1: { a: [ { b: 'c' } ] },
- value2: { a: [ { b: 'c' } ] },
- equal: true
- },
- {
- description: 'not equal objects (different sub-property value)',
- value1: { a: [ { b: 'c' } ] },
- value2: { a: [ { b: 'd' } ] },
- equal: false
- },
- {
- description: 'not equal objects (different sub-property)',
- value1: { a: [ { b: 'c' } ] },
- value2: { a: [ { c: 'c' } ] },
- equal: false
- },
- {
- description: 'empty array and empty object are not equal',
- value1: {},
- value2: [],
- equal: false
- },
- {
- description: 'object with extra undefined properties are not equal #1',
- value1: {},
- value2: {foo: undefined},
- equal: false
- },
- {
- description: 'object with extra undefined properties are not equal #2',
- value1: {foo: undefined},
- value2: {},
- equal: false
- },
- {
- description: 'object with extra undefined properties are not equal #3',
- value1: {foo: undefined},
- value2: {bar: undefined},
- equal: false
- }
- ]
- },
- {
- description: 'arrays',
- tests: [
- {
- description: 'two empty arrays are equal',
- value1: [],
- value2: [],
- equal: true
- },
- {
- description: 'equal arrays',
- value1: [1, 2, 3],
- value2: [1, 2, 3],
- equal: true
- },
- {
- description: 'not equal arrays (different item)',
- value1: [1, 2, 3],
- value2: [1, 2, 4],
- equal: false
- },
- {
- description: 'not equal arrays (different length)',
- value1: [1, 2, 3],
- value2: [1, 2],
- equal: false
- },
- {
- description: 'equal arrays of objects',
- value1: [{a: 'a'}, {b: 'b'}],
- value2: [{a: 'a'}, {b: 'b'}],
- equal: true
- },
- {
- description: 'not equal arrays of objects',
- value1: [{a: 'a'}, {b: 'b'}],
- value2: [{a: 'a'}, {b: 'c'}],
- equal: false
- },
- {
- description: 'pseudo array and equivalent array are not equal',
- value1: {'0': 0, '1': 1, length: 2},
- value2: [0, 1],
- equal: false
- }
- ]
- },
- {
- description: 'Date objects',
- tests: [
- {
- description: 'equal date objects',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: new Date('2017-06-16T21:36:48.362Z'),
- equal: true
- },
- {
- description: 'not equal date objects',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: new Date('2017-01-01T00:00:00.000Z'),
- equal: false
- },
- {
- description: 'date and string are not equal',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: '2017-06-16T21:36:48.362Z',
- equal: false
- },
- {
- description: 'date and object are not equal',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: {},
- equal: false
- }
- ]
- },
- {
- description: 'RegExp objects',
- tests: [
- {
- description: 'equal RegExp objects',
- value1: /foo/,
- value2: /foo/,
- equal: true
- },
- {
- description: 'not equal RegExp objects (different pattern)',
- value1: /foo/,
- value2: /bar/,
- equal: false
- },
- {
- description: 'not equal RegExp objects (different flags)',
- value1: /foo/,
- value2: /foo/i,
- equal: false
- },
- {
- description: 'RegExp and string are not equal',
- value1: /foo/,
- value2: 'foo',
- equal: false
- },
- {
- description: 'RegExp and object are not equal',
- value1: /foo/,
- value2: {},
- equal: false
- }
- ]
- },
- {
- description: 'sample objects',
- tests: [
- {
- description: 'big object',
- value1: {
- prop1: 'value1',
- prop2: 'value2',
- prop3: 'value3',
- prop4: {
- subProp1: 'sub value1',
- subProp2: {
- subSubProp1: 'sub sub value1',
- subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5]
- }
- },
- prop5: 1000,
- prop6: new Date(2016, 2, 10)
- },
- value2: {
- prop5: 1000,
- prop3: 'value3',
- prop1: 'value1',
- prop2: 'value2',
- prop6: new Date('2016/03/10'),
- prop4: {
- subProp2: {
- subSubProp1: 'sub sub value1',
- subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5]
- },
- subProp1: 'sub value1'
- }
- },
- equal: true
- }
- ]
- }
- ];
|