kopia lustrzana https://github.com/c9/core
92 wiersze
2.8 KiB
JavaScript
92 wiersze
2.8 KiB
JavaScript
"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(); |