restify-new-nodejs-compatible
Version:
REST framework
131 lines (109 loc) • 2.86 kB
JavaScript
// 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();
});
};