tender-cli
Version:
Command line interface for Tender
89 lines (69 loc) • 3.07 kB
text/coffeescript
assert = require 'assert'
fs = require 'fs'
reporters = require '../lib/reporters/list'
util = require 'util'
output = require './test_output_list.json'
describe 'List reporters', ->
it 'should have a basic reporter', ->
assert reporters.basic
assert reporters.basic.description
it 'should have a csv reporter', ->
assert reporters.csv
assert reporters.csv.description
it 'should have a full csv reporter', ->
assert reporters.csvfull
assert reporters.csvfull.description
it 'should have a list reporter', ->
assert reporters.list
assert reporters.list.description
it 'should have a table reporter', ->
assert reporters.table
assert reporters.table.description
it 'should return an error if no data is specfied', (done) ->
reporters.basic {}, (err, data) ->
assert err
done()
describe 'Basic reporter (list)', ->
it 'should print data', (done) ->
reporters.basic {data: output, silent: true}, (err, results) ->
assert.ifError err
assert.equal results, "\n(1) discussions: \n\n#123: Test 123\n"
done()
describe 'List reporter (list)', ->
it 'should print data', (done) ->
reporters.list {data: output, silent: true}, (err, results) ->
assert.ifError err
assert results
assert.notEqual results.indexOf("Displaying (1) discussions:"), -1
assert.notEqual results.indexOf("Discussion #123"), -1
done()
describe 'Table reporter (list)', ->
it 'should print data', (done) ->
reporters.table {data: output, silent: true}, (err, results) ->
assert.ifError err
assert.notEqual results.indexOf("Id"), -1
done()
describe 'CSV reporter (list)', ->
it 'should print csv data to file', (done) ->
reporters.csv {data: output, cmdOptions : {output: './test/test.csv'}, silent: true}, (err, results) ->
assert.ifError err
assert.notEqual results.indexOf('number,title,author_name,state,age'), -1
assert fs.existsSync './test/test.csv'
fs.unlinkSync './test/test.csv'
done()
describe 'Full CSV reporter (list)', ->
it 'should print csv data to file', (done) ->
reporters.csvfull {data: output, cmdOptions : {output: './test/test_full.csv'}, silent: true}, (err, results) ->
assert.ifError err
assert.notEqual results.indexOf('id,number,title,author_name,author_email,state,age,public,hidden,unread,unresponded,comments_count,watchers_count,last_user_id,last_updated_at,last_via,last_author_email,last_author_name,href'), -1
assert fs.existsSync './test/test_full.csv'
fs.unlinkSync './test/test_full.csv'
done()
describe 'JSON reporter (list)', ->
it 'should print json data to file', (done) ->
reporters.json {data: output, cmdOptions : {output: './test/test.json'}, silent: true}, (err, results) ->
assert.ifError err
assert.notEqual results.indexOf('"category_href": "https://api.tenderapp.com:443/",'), -1
assert fs.existsSync './test/test.json'
fs.unlinkSync './test/test.json'
done()