c9-core/node_modules/frontdoor/lib/api-client_test.js

92 wiersze
2.8 KiB
JavaScript
Czysty Zwykły widok Historia

2016-06-26 11:53:19 +00:00
"use strict";
"use server";
require("amd-loader");
var assert = require("assert");
var sinon = require("sinon");
var http = require("http");
var frontdoor = require("../frontdoor");
var createClient = require("./api-client");
module.exports = {
"test client/server integration": function(next) {
this.getUsers = function(params, callback) {
console.log(params)
callback(null, [{
id: 1,
name: "fjakobs",
first: params.first
}]);
};
this.addUser = sinon.stub();
this.getUser = function(params, callback) {
console.log(params)
callback(null, {
id: params.uid,
name: "fjakobs"
});
};
var api = frontdoor();
api.section("users")
.get("/", {
name: "getAll",
params: {
first: {
type: "int",
source: "query",
optional: true
}
}
}, this.getUsers)
.get("/:uid", this.getUser)
.post("/:uid", {
params: {
name: {
source: "body"
}
}
}, this.addUser);
api.get("/describe.json", {
name: "describe"
}, frontdoor.middleware.describeApi(api));
var port = process.env.PORT || 8383;
this.server = http.createServer(api.handle).listen(port, function() {
createClient("http://localhost:" + port + "/describe.json", function(err, client) {
assert.equal(err, null);
client.users.get({ uid: 123}, function(err, user) {
assert.equal(user.id, 123);
assert.equal(err, null);
client.users.getAll({ first: 100}, function(err, users) {
assert.equal(err, null);
assert.equal(users[0].first, 100);
next();
});
});
});
});
},
// ">test real API server": function(next) {
// createClient("http://127.0.0.1:8081/api.json", function(err, client) {
// assert.equal(err, null);
// console.log(err, Object.keys(client), client.vfs);
// client.vfs.get(function(err, res) {
// console.log(err, res);
// assert.equal(err, null);
// next();
// })
// });
// }
};
!module.parent && require("asyncjs").test.testcase(module.exports).exec();