text: var _ = require('lodash');
  var path = require("path");
  // 设置测试环境
  process.env.NODE_ENV = 'test';
  var chai = require('chai');
  var chaiHttp = require('chai-http');
  var app = require(path.join(process.cwd(),"app"));
  chai.use(chaiHttp);
  
  var common = require("../common/common.js");
  var config = require(path.join(process.cwd(),"test/configs/config"));
  var loginURL = config.baseURL + "login";
  
  var url = config.baseURL + "roles";
  
  describe(url + " role api testing",function() {
  	// manager's token
  	var token;
  
  	// new role data
  	var testRole = {
  		roleName:"__test_role_name",
  		roleDesc:"__test_role_desc"
  	};
  
  	var roleId = -1;
  
  	before(function(done) {
  		// The api access must be logged in
  		common.login(config.username,config.password,function(err,res){
  			chai.assert.equal(res.body.meta.status,200,res.body.meta.msg);
  			token = res.body.data.token;
  			done();
  		});
  	});
  
  	after(function(done) {
  		done();
  	});
  
  	it("test to add a new role",function(done){
  		chai
  		.request(app)
  		.post(url)
  		.set({"Authorization": token})
  		.send(testRole)
  		.end(function(err,res){
  			chai.assert.equal(res.body.meta.status,201,res.body.meta.msg);
  			chai.assert.isNotNull(res.body.data,"The result is empty");
  			if(res.body.data) {
  				roleId = res.body.data.roleId;
  			}
  			done();
  		});
  	});
  	
  	it("test to get role's destail",function(done){
  		var getURL = url + "/" + roleId;
  		chai
  		.request(app)
  		.get(getURL)
  		.set({"Authorization": token})
  		.end(function(err,res) {
  			chai.assert.equal(res.body.meta.status,200,res.body.meta.msg);
  			chai.assert.isNotNull(res.body.data,"The result is empty");
  			done();
  		});
  	});
  
  	it("test to get role's list",function(done){
  		chai
  		.request(app)
  		.get(url)
  		.set({"Authorization": token})
  		.end(function(err,res){
  			chai.assert.equal(res.body.meta.status,200,res.body.meta.msg);
  			chai.assert.isOk(res.body.data.length > 0,"获取角色列表失败");
  			done();
  		});
  	});
  
  	it("test to update role's info",function(done){
  		var newRoleName = "__test_new_role_name";
  		var newRoleDesc = "__test_new_role_desc";
  		var updateURL = url + "/" + roleId;
  		chai
  		.request(app)
  		.put(updateURL)
  		.set({"Authorization": token})
  		.send({
  			"roleName" : newRoleName,
  			"roleDesc" : newRoleDesc
  		})
  		.end(function(err,res){
  			chai.assert.equal(res.body.meta.status,200,res.body.meta.msg);
  			chai.assert.equal(res.body.data.roleName,newRoleName,"The role's name is not updated");
  			chai.assert.equal(res.body.data.roleDesc,newRoleDesc,"The role's desc is not updated");
  			done();
  		});
  	});
  
  	// /:id/rights
  	it("test to authorize for role",function(done) {
  		// done();
  	});
  
  	// /:id/rights/:rightId
  	it("test to revoke authorization for role",function(done){
  		// done();
  	});
  
  	it("test to delete role",function(done) {
  		chai.assert.isOk(roleId > 0,"delete failure");
  		if(roleId > 0) {
  			var delURL = url + "/" + roleId;
  			chai
  			.request(app)
  			.del(delURL)
  			.set({"Authorization": token})
  			.end(function(err,res){
  				chai.assert.equal(res.body.meta.status,200,res.body.meta.msg);
  				done();
  			});
  		}
  	});
  });