123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- ###
- Test suite for node AND browser in one file
- So, we are need some data from global
- Its so wrong, but its OK for test
- ###
- # resolve require from [window] or by require()
- # _ = @_ ? require 'lodash'
- lib_path = GLOBAL?.lib_path || ''
- extend = require "#{lib_path}whet.extend"
- describe 'whet.extend:', ->
- str = int = arr = date = obj = deep = null
- beforeEach ->
- str = 'me a test'
- int = 10
- arr = [ 1, 'what', new Date( 81, 8, 4 )];
- date = new Date( 81, 4, 13 );
- obj =
- str : str
- int : int
- arr : arr
- date : date
- deep =
- ori : obj
- layer :
- int : 10
- str : 'str'
- date : new Date( 84, 5, 12 )
- arr : [ 101, 'dude', new Date( 82, 10, 4 )]
- deep :
- str : obj.str
- int : int
- arr : obj.arr
- date : new Date( 81, 7, 4 )
-
- describe 'should merge string with:', ->
- it 'string', ->
- ori = 'what u gonna say';
- target = extend ori, str
- ori.should.eql 'what u gonna say'
- str.should.eql 'me a test'
- target.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't'
- it 'number', ->
- ori = 'what u gonna say'
- target = extend ori, int
- ori.should.eql 'what u gonna say'
- int.should.eql 10
- target.should.eql {}
- it 'array', ->
- ori = 'what u gonna say'
- target = extend ori, arr
- ori.should.eql 'what u gonna say'
- arr.should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- target.should.eql
- '0' : 1,
- '1' : 'what',
- '2' : new Date( 81, 8, 4 )
- it 'date', ->
- ori = 'what u gonna say'
- target = extend ori, date
- ori.should.eql 'what u gonna say'
- date.should.eql new Date( 81, 4, 13 )
- target.should.eql new Date( 81, 4, 13 )
- it 'object', ->
- ori = 'what u gonna say'
- target = extend ori, obj
- ori.should.eql 'what u gonna say'
- obj.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- target.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- describe 'should merge number with:', ->
- it 'string', ->
- ori = 20
- target = extend ori, str
- ori.should.eql 20
- str.should.eql 'me a test'
- target.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't'
- it 'number', ->
- ori = 20
- target = extend ori, int
- ori.should.eql 20
- int.should.eql 10
- target.should.eql {}
- it 'array', ->
- ori = 20
- target = extend ori, arr
- ori.should.eql 20
- arr.should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- target.should.eql
- '0' : 1,
- '1' : 'what',
- '2' : new Date( 81, 8, 4 )
- it 'date', ->
- ori = 20
- target = extend ori, date
- ori.should.eql 20
- date.should.eql new Date( 81, 4, 13 )
- target.should.eql new Date( 81, 4, 13 )
- it 'object', ->
- ori = 20
- target = extend ori, obj
- ori.should.eql 20
- obj.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- target.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- describe 'should merge array with:', ->
- it 'string', ->
- ori = [ 1, 2, 3, 4, 5, 6 ]
- target = extend ori, str
- ori.should.eql [ 'm', 'e', ' ', 'a', ' ', 't', 'e', 's', 't' ]
- str.should.eql 'me a test'
- target.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't'
- it 'number', ->
- ori = [ 1, 2, 3, 4, 5, 6 ]
- target = extend ori, int
- ori.should.eql [ 1, 2, 3, 4, 5, 6 ]
- int.should.eql 10
- target.should.eql [ 1, 2, 3, 4, 5, 6 ]
- it 'array', ->
- ori = [ 1, 2, 3, 4, 5, 6 ]
- target = extend ori, arr
- ori.should.eql [ 1, 'what', new Date( 81, 8, 4 ), 4, 5, 6 ]
- arr.should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- target.should.eql [ 1, 'what', new Date( 81, 8, 4 ), 4, 5, 6 ]
- it 'date', ->
- ori = [ 1, 2, 3, 4, 5, 6 ]
- target = extend ori, date
- ori.should.eql [ 1, 2, 3, 4, 5, 6 ]
- date.should.eql new Date( 81, 4, 13 )
- target.should.eql [ 1, 2, 3, 4, 5, 6 ]
- it 'object', ->
- ori = [ 1, 2, 3, 4, 5, 6 ]
- target = extend ori, obj
- ori.length.should.equal 6
- ori[ 'str' ].should.eql 'me a test'
- ori[ 'int' ].should.eql 10
- ori[ 'arr' ].should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- ori[ 'date' ].should.eql new Date( 81, 4, 13 )
- obj.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
-
- target.length.should.equal 6
- target[ 'str' ].should.eql 'me a test'
- target[ 'int' ].should.eql 10
- target[ 'arr' ].should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- target[ 'date' ].should.eql new Date( 81, 4, 13 )
- describe 'should merge date with:', ->
-
- it 'string', ->
- ori = new Date( 81, 9, 20 )
- target = extend ori, str
- ori.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't'
-
- str.should.eql 'me a test'
- target.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't'
- it 'number', ->
- ori = new Date( 81, 9, 20 )
- target = extend ori, int
- ori.should.eql {}
- int.should.eql 10
- target.should.eql {}
- it 'array', ->
- ori = new Date( 81, 9, 20 )
- target = extend ori, arr
- ori.should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- int.should.eql 10
- target.should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- it 'date', ->
- ori = new Date( 81, 9, 20 )
- target = extend ori, date
- ori.should.eql {}
- date.should.eql new Date( 81, 4, 13 )
- target.should.eql {}
- it 'object', ->
- ori = new Date( 81, 9, 20 )
- target = extend ori, obj
- ori.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- obj.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- target.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- describe 'should merge object with:', ->
-
- it 'string', ->
- ori =
- str : 'no shit'
- int : 76
- arr : [ 1, 2, 3, 4 ]
- date : new Date( 81, 7, 26 )
-
- target = extend ori, str
- ori.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't',
- str: 'no shit',
- int: 76,
- arr: [ 1, 2, 3, 4 ],
- date: new Date( 81, 7, 26 )
-
- str.should.eql 'me a test'
- target.should.eql
- '0' : 'm',
- '1' : 'e',
- '2' : ' ',
- '3' : 'a',
- '4' : ' ',
- '5' : 't',
- '6' : 'e',
- '7' : 's',
- '8' : 't',
- str: 'no shit',
- int: 76,
- arr: [ 1, 2, 3, 4 ],
- date: new Date( 81, 7, 26 )
- it 'number', ->
- ori =
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- target = extend ori, int
- ori.should.eql
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- int.should.eql 10
- target.should.eql
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
- it 'array', ->
- ori =
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- target = extend ori, arr
- ori.should.eql
- '0' : 1,
- '1' : 'what',
- '2' : new Date( 81, 8, 4 ),
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- arr.should.eql [ 1, 'what', new Date( 81, 8, 4 )]
- target.should.eql
- '0' : 1,
- '1' : 'what',
- '2' : new Date( 81, 8, 4 ),
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
- it 'date', ->
- ori =
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- target = extend ori, date
- ori.should.eql
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- date.should.eql new Date( 81, 4, 13 )
- target.should.eql
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
- it 'object', ->
- ori =
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- target = extend ori, obj
- ori.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
-
- obj.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
-
- target.should.eql
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- describe 'should make deep clone: ', ->
- it 'object with object', ->
- ori =
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 )
-
- target = extend true, ori, deep
- ori.should.eql
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 ),
- ori :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- layer :
- int : 10,
- str : 'str',
- date : new Date( 84, 5, 12 ),
- arr : [ 101, 'dude', new Date( 82, 10, 4 )],
- deep :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 7, 4 )
- deep.should.eql
- ori :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- layer :
- int : 10,
- str : 'str',
- date : new Date( 84, 5, 12 ),
- arr : [ 101, 'dude', new Date( 82, 10, 4 )],
- deep :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 7, 4 )
- target.should.eql
- str : 'no shit',
- int : 76,
- arr : [ 1, 2, 3, 4 ],
- date : new Date( 81, 7, 26 ),
- ori :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- layer :
- int : 10,
- str : 'str',
- date : new Date( 84, 5, 12 ),
- arr : [ 101, 'dude', new Date( 82, 10, 4 )],
- deep :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 7, 4 )
- target.layer.deep = 339;
- deep.should.eql
- ori :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 4, 13 )
- layer :
- int : 10,
- str : 'str',
- date : new Date( 84, 5, 12 ),
- arr : [ 101, 'dude', new Date( 82, 10, 4 )],
- deep :
- str : 'me a test',
- int : 10,
- arr : [ 1, 'what', new Date( 81, 8, 4 )],
- date : new Date( 81, 7, 4 )
- ###
- NEVER USE EXTEND WITH THE ABOVE SITUATION
- ###
- describe 'must pass additional test: ', ->
- it 'should merge objects with \'null\' and \'undefined\'', ->
- ori =
- a : 10
- b : null
- c : 'test data'
- d : undefined
- additional =
- x : 'googol'
- y : 8939843
- z : null
- az : undefined
- target = extend ori, additional
- target.should.to.be.eql
- a : 10
- b : null
- c : 'test data'
- d : undefined
- x : 'googol'
- y : 8939843
- z : null
- az : undefined
|