lark
Version:
A node.js framework based on koa. Our goal is to build the best industrial node.js framework for high concurrency and high flow application.
123 lines (106 loc) • 3.43 kB
JavaScript
/**
* lark - application.test.js.js
* Copyright(c) 2014 larkjs-team(https://github.com/larkjs)
* MIT Licensed
*/
;
/**
* Module dependencies.
*/
var assert = require("assert");
var fs = require('fs');
var path = require('path');
var exec = require('child_process').exec;
var cwd = process.cwd();
clear();
var app = require('../example/');
var lark = require('../lib/application');
var request = require('supertest').agent(app.run());
var should = require('should');
var development = {
port: 3000,
bootstrap: { enable: false },
log: {
files: {
debug: {
path: './logs/debug.log',
options: {
encoding: 'utf8'
}
}
}
},
mvc: { path: 'models' },
router: { directory: 'controllers' },
views: { directory: 'views', map: { ejs: "ejs" } },
environment: 'development'
};
describe('lib/application.js', function () {
describe('app', function () {
it('should be instance of lark', function (done) {
var app = lark();
(app instanceof lark).should.be.ok;
done();
});
});
});
describe('lark-router', function () {
it('should response "dao-dataService-pageService"', function (done) {
request.get('/').expect(200).expect('dao-dataService-pageService', done);
});
it('should response "404"', function (done) {
request.get('/user/').expect(404);
done();
});
it('should response "Hello /user/list"', function (done) {
request.get('/user/list').expect(200).expect('\n<h2>lark</h2>\n\n', done);
});
});
describe('lark-error-handler', function () {
it('should response "500"', function (done) {
request.get('/error').expect(500);
done();
});
it('should response "400"', function (done) {
request.get('/badrequest').expect(400);
done();
});
});
describe('lark-config', function () {
it('should equal config', function (done) {
delete app.config.configPath;
JSON.stringify(app.config).should.equal(JSON.stringify(development));
done();
});
});
describe('lark-views', function () {
it('should response "views/user/index.html', function (done) {
request.get('/user/create').expect(200).expect(/user create/, done);
});
});
describe('lark-log', function () {
var logger = larkLog;
it('should be instance of Logger', function (done) {
logger.should.be.an.instanceOf(require('lark-log/lib/Logger'));
done();
});
it('should be "INFO xxx controller:index" in app.log', function (done) {
var content = fs.readFileSync(path.join(cwd, 'logs', 'app.log'));
content.should.be.an.instanceOf(Buffer);
content = content.toString().split('\n').filter(function (line) {
return line.trim().match(/^INFO:/);
});
content.length.should.be.equal(2);
should(content[0].match(/^INFO: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} controller:index$/)).be.ok;
should(content[1].match(/^INFO: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} controller:index2$/)).be.ok;
done();
});
});
function clear() {
function clearLogs() {
exec('rm -rf ' + path.join(cwd, 'logs'));
exec('rm -rf ' + path.join(cwd, 'example/.pm2'));
};
clearLogs();
process.on('exit', clearLogs);
}