mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
main
This commit is contained in:
317
node_modules/node-rest-client/test/specs/TestRIOFacade.js
generated
vendored
Normal file
317
node_modules/node-rest-client/test/specs/TestRIOFacade.js
generated
vendored
Normal file
@ -0,0 +1,317 @@
|
||||
var server =require("../server/mock-server"),
|
||||
Client=require("../../lib/node-rest-client").Client;
|
||||
|
||||
describe('IO Facade', function () {
|
||||
|
||||
this.timeout(150000);
|
||||
|
||||
before(function () {
|
||||
server.listen(4444);
|
||||
console.log("server started on port 4444");
|
||||
});
|
||||
|
||||
describe("#Parsers",function(){
|
||||
|
||||
var testParser = {"name":"test-parser",
|
||||
"isDefault":false,
|
||||
"match":function(response){
|
||||
return response.headers["test-header"] === "test";
|
||||
},
|
||||
"parse":function(byteBuffer,nrcEventEmitter,parsedCallback){
|
||||
var message = JSON.parse(byteBuffer.toString());
|
||||
message.parsed = true;
|
||||
parsedCallback(message);
|
||||
}
|
||||
},
|
||||
defaultTestParser = {"name":"default-test-parser",
|
||||
"isDefault":true,
|
||||
"parse":function(byteBuffer,nrcEventEmitter,parsedCallback){
|
||||
var message = JSON.parse(byteBuffer.toString());
|
||||
message.defaultParsed = true;
|
||||
parsedCallback(message);
|
||||
}
|
||||
};
|
||||
|
||||
it("add invalid parser to client", function(done){
|
||||
var client = new Client();
|
||||
|
||||
client.on('error', function(err){
|
||||
err.should.startWith("parser cannot be added: invalid parser definition");
|
||||
done();
|
||||
});
|
||||
|
||||
client.parsers.add({"invalid":123, "parser":456}).should.throw();
|
||||
});
|
||||
|
||||
|
||||
it("add parser to client", function(done){
|
||||
var client = new Client();
|
||||
client.parsers.add(testParser);
|
||||
var parser = client.parsers.find("test-parser");
|
||||
|
||||
parser.should.not.equal(null);
|
||||
parser.should.type("object");
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
it("remove parser from client", function(done){
|
||||
var client = new Client();
|
||||
|
||||
client.on('error', function(err){
|
||||
err.should.startWith("cannot find parser: test-parser doesn't exists");
|
||||
done();
|
||||
});
|
||||
|
||||
client.parsers.add(testParser);
|
||||
var parser = client.parsers.find("test-parser");
|
||||
|
||||
parser.should.not.equal(null);
|
||||
parser.should.type("object");
|
||||
|
||||
client.parsers.remove("test-parser");
|
||||
client.parsers.find("test-parser");
|
||||
});
|
||||
|
||||
it("response match parser", function(done){
|
||||
var client = new Client();
|
||||
client.parsers.clean();
|
||||
client.parsers.add(testParser);
|
||||
|
||||
client.get(server.baseURL + "/json", function(data, response){
|
||||
data.should.not.equal(null);
|
||||
data.should.type("object");
|
||||
data.should.have.property("parsed");
|
||||
data.parsed.should.be.a.Boolean;
|
||||
data.parsed.should.be.true;
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
it("add and use default parser", function(done){
|
||||
var client = new Client();
|
||||
client.parsers.clean();
|
||||
|
||||
client.parsers.add(testParser);
|
||||
client.parsers.add(defaultTestParser);
|
||||
// no parsers defined, default must be used
|
||||
|
||||
client.get(server.baseURL + "/json/path?default-test", function(data, response){
|
||||
data.should.not.equal(null);
|
||||
data.should.type("object");
|
||||
data.should.have.property("defaultParsed");
|
||||
data.defaultParsed.should.be.a.Boolean;
|
||||
data.defaultParsed.should.be.true;
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
it("add custom types to args in JSON parser", function(done){
|
||||
var options={
|
||||
// customize mime types for json or xml connections
|
||||
mimetypes: {
|
||||
json: ["test/json"]
|
||||
}
|
||||
};
|
||||
var client = new Client(options);
|
||||
|
||||
client.get(server.baseURL + "/json/test/content/type", function(data, response){
|
||||
data.should.not.equal(null);
|
||||
data.should.type("object");
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
it("add custom types to args in XML parser", function(done){
|
||||
var options={
|
||||
// customize mime types for json or xml connections
|
||||
mimetypes: {
|
||||
xml: ["test/xml"]
|
||||
}
|
||||
};
|
||||
var client = new Client(options);
|
||||
|
||||
client.get(server.baseURL + "/xml/test/content/type", function(data, response){
|
||||
data.should.not.equal(null);
|
||||
data.should.type("object");
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
it("get all regular parsers", function(done){
|
||||
|
||||
var client = new Client();
|
||||
var parsers = client.parsers.getAll();
|
||||
parsers.should.have.length(2);
|
||||
done();
|
||||
|
||||
});
|
||||
|
||||
it("emit custom event from parser to client", function(done){
|
||||
var client = new Client();
|
||||
client.on('customEvent',function(event){
|
||||
event.should.be.equal("my custom event");
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
client.parsers.clean();
|
||||
client.parsers.add({
|
||||
"name":"example-parser",
|
||||
"isDefault":false,
|
||||
"match":function(request){return true; },
|
||||
"parse":function(byteBuffer,nrcEventEmitter,parsedCallback){
|
||||
nrcEventEmitter('customEvent','my custom event');
|
||||
// pass serialized data to client to be sent to remote API
|
||||
parsedCallback(byteBuffer.toString());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
var args ={data:"test data"}
|
||||
|
||||
client.post(server.baseURL + "/json/path/post/query",args, function(data, response){});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe("#Serializers",function(){
|
||||
|
||||
var testSerializer = {"name":"test-serializer",
|
||||
"isDefault":false,
|
||||
"match":function(request){
|
||||
return request.headers["test-header"] === "test";
|
||||
},
|
||||
"serialize":function(data,nrcEventEmitter,serializedCallback){
|
||||
if (typeof data === 'object')
|
||||
data.serialized = true;
|
||||
serializedCallback(JSON.stringify(data));
|
||||
}
|
||||
},
|
||||
defaultTestSerializer = {"name":"default-test-serializer",
|
||||
"isDefault":true,
|
||||
"serialize":function(data,nrcEventEmitter,serializedCallback){
|
||||
if (typeof data === 'object')
|
||||
data.defaultParsed = true;
|
||||
serializedCallback(data);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
it("add invalid serializer to client", function(done){
|
||||
var client = new Client();
|
||||
|
||||
client.on('error', function(err){
|
||||
err.should.startWith("serializer cannot be added: invalid serializer definition");
|
||||
done();
|
||||
});
|
||||
|
||||
client.serializers.add({"invalid":123, "serializer":456}).should.throw();
|
||||
});
|
||||
|
||||
|
||||
|
||||
it("add serializer to client", function(done){
|
||||
var client = new Client();
|
||||
client.serializers.add(testSerializer);
|
||||
var serializer = client.serializers.find("test-serializer");
|
||||
|
||||
serializer.should.not.equal(null);
|
||||
serializer.should.type("object");
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
it("remove serializer from client", function(done){
|
||||
var client = new Client();
|
||||
|
||||
client.on('error', function(err){
|
||||
err.should.startWith("cannot find serializer: test-serializer doesn't exists");
|
||||
done();
|
||||
});
|
||||
|
||||
client.serializers.add(testSerializer);
|
||||
var serializer = client.serializers.find("test-serializer");
|
||||
|
||||
serializer.should.not.equal(null);
|
||||
serializer.should.type("object");
|
||||
|
||||
client.serializers.remove("test-serializer");
|
||||
client.serializers.find("test-serializer");
|
||||
});
|
||||
|
||||
|
||||
it("request match serializer", function(done){
|
||||
var client = new Client(),
|
||||
args={
|
||||
headers:{"test-header":"test"},
|
||||
data:{"testNumber":123, "testString":"abc"}
|
||||
};
|
||||
|
||||
client.serializers.clean();
|
||||
client.serializers.add(testSerializer);
|
||||
|
||||
var request = client.post(server.baseURL + "/json/path/post",args, function(data, response){
|
||||
data.postData.should.not.equal(null);
|
||||
data.postData.should.type("object");
|
||||
data.postData.should.have.property("serialized");
|
||||
data.postData.serialized.should.be.a.Boolean;
|
||||
data.postData.serialized.should.be.true;
|
||||
});
|
||||
|
||||
done();
|
||||
|
||||
});
|
||||
|
||||
it("get all regular serializers", function(done){
|
||||
|
||||
var client = new Client();
|
||||
var serializers = client.serializers.getAll();
|
||||
serializers.should.have.length(3);
|
||||
done();
|
||||
|
||||
});
|
||||
|
||||
it("emit custom event from serializer to client", function(done){
|
||||
var client = new Client();
|
||||
client.on('customEvent',function(event){
|
||||
event.should.be.equal("my custom event");
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
client.serializers.clean();
|
||||
client.serializers.add({
|
||||
"name":"example-serializer",
|
||||
"isDefault":false,
|
||||
"match":function(request){return true; },
|
||||
"serialize":function(data,nrcEventEmitter,serializedCallback){
|
||||
nrcEventEmitter('customEvent','my custom event');
|
||||
// pass serialized data to client to be sent to remote API
|
||||
serializedCallback(data.toString());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
var args ={data:"test data"}
|
||||
|
||||
client.post(server.baseURL + "/json/path/post/query",args, function(data, response){});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
after(function () {
|
||||
server.close();
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user