stocks : function (test) { 'use strict'; var stocks = require(__dirname + '/../../../../apps/gerty/stocks'), deviceGood = stocks.stocks({ value : { 'STOCK1' : { dayChangePercent : '5%' }, 'STOCK2' : { dayChangePercent : '7%' } } }), deviceOk = stocks.stocks({ value : { 'STOCK1' : { dayChangePercent : '3%' }, 'STOCK2' : { dayChangePercent : '1%' } } }), deviceBad = stocks.stocks({ value : { 'STOCK1' : { dayChangePercent : '-5%' }, 'STOCK2' : { dayChangePercent : '-7%' } } }); test.deepEqual(deviceGood, { excited: 5, scared: 0 }, 'Your stocks are doing well'); test.deepEqual(deviceOk, { excited: 2, scared: 0 }, 'Your stocks are doing ok'); test.deepEqual(deviceBad, { excited: -5, scared: -5 }, 'Your stocks are doing pretty bad'); test.done(); }
parser : function (test) { 'use strict'; var stocksParser = require(__dirname + '/../../../../devices/stocks/parser'), markup = '<h1>Foo</h1> <div>{{STOCKS_DYNAMIC}}</div>', value = { foo : { dayChangeValue : '+1.00', name : 'YHOO', price : '50.00', dayChangePercent : '1%' }, bar : { dayChangeValue : '-1.00', name : 'TSLA', price : '250.00', dayChangePercent : '2%' }, baz : { dayChangeValue : '0.00', name : 'GOOG', price : '400.00', dayChangePercent : '0%' } }, fragments = { list : '<li class="{{STOCK_CHANGE}}"><span class="fa fa-{{STOCK_ARROW}}"><span>{{STOCK_DIRECTION}}</span></span><span class="name">{{STOCK_NAME}}</span> <span class="price">{{STOCK_PRICE}}</span> <span class="change">({{STOCK_CHANGE_VALUE}} {{STOCK_CHANGE_PERCENT}})</li>' }, goodMarkup = stocksParser.stocks('dummy', markup, 'ok', value, fragments), badMarkup = stocksParser.stocks('dummy', markup, 'ok', null, fragments); test.strictEqual(goodMarkup.indexOf('{{'), -1, 'All values replaced'); test.notStrictEqual(goodMarkup.indexOf('<li class="gain"><span class="fa fa-arrow-up"><span>Gain</span></span><span class="name">YHOO</span> <span class="price">50.00</span> <span class="change">(+1.00 1%)</li>'), -1, 'Passed markup validated'); test.notStrictEqual(goodMarkup.indexOf('<li class="loss"><span class="fa fa-arrow-down"><span>Loss</span></span><span class="name">TSLA</span> <span class="price">250.00</span> <span class="change">(-1.00 2%)</li>'), -1, 'Passed markup validated'); test.notStrictEqual(goodMarkup.indexOf('<li class="neutral"><span class="fa fa-arrows-h"><span>Neutral</span></span><span class="name">GOOG</span> <span class="price">400.00</span> <span class="change">(0.00 0%)</li>'), -1, 'Passed markup validated'); test.strictEqual(badMarkup.indexOf('{{'), -1, 'All values replaced'); test.strictEqual(badMarkup, '<h1>Foo</h1> <div></div>', 'Passed markup validated'); test.done(); }