UNPKG

restify-new-nodejs-compatible

Version:
131 lines (109 loc) 2.86 kB
// Copyright (c) 2012 Mark Cavage. All rights reserved. var fs = require('fs'); var pino = require('pino'); var restify = require('restify'); var todo = require('../lib'); ///--- Globals var CLIENT; var DIR = '/tmp/.todo_unit_test'; var SERVER; var SOCK = '/tmp/.todo_sock'; ///--- Tests exports.setup = function(t) { var log = pino({ name: 'todo_unit_test', level: process.env.LOG_LEVEL || 'info' }); fs.mkdir(DIR, function(err) { if (err && err.code !== 'EEXIST') { console.error('unable to mkdir: ' + err.stack); process.exit(1); } SERVER = todo.createServer({ directory: DIR, log: log.child({ component: 'server' }, true), noAudit: true }); t.ok(SERVER); SERVER.listen(SOCK, function() { CLIENT = todo.createClient({ log: log.child({ component: 'client' }, true), socketPath: SOCK }); t.ok(CLIENT); t.done(); }); }); }; exports.listEmpty = function(t) { CLIENT.list(function(err, todos) { t.ifError(err); t.ok(todos); t.ok(Array.isArray(todos)); if (todos) { t.equal(todos.length, 0); } t.done(); }); }; exports.create = function(t) { var task = 'check that unit test works'; CLIENT.create(task, function(err, todo) { t.ifError(err); t.ok(todo); if (todo) { t.ok(todo.name); t.equal(todo.task, task); } t.done(); }); }; exports.listAndGet = function(t) { CLIENT.list(function(err, todos) { t.ifError(err); t.ok(todos); t.ok(Array.isArray(todos)); if (todos) { t.equal(todos.length, 1); CLIENT.get(todos[0], function(err2, todo) { t.ifError(err2); t.ok(todo); t.done(); }); } else { t.done(); } }); }; exports.update = function(t) { CLIENT.list(function(err, todos) { t.ifError(err); t.ok(todos); t.ok(Array.isArray(todos)); if (todos) { t.equal(todos.length, 1); var todo = { name: todos[0], task: 'something else' }; CLIENT.update(todo, function(err2) { t.ifError(err2); t.done(); }); } else { t.done(); } }); }; exports.teardown = function teardown(t) { CLIENT.del(function(err) { t.ifError(err); SERVER.once('close', function() { fs.rmdir(DIR, function(err) { t.ifError(err); t.done(); }); }); SERVER.close(); }); };