var assert = require("assert");
|
|
var client = require("../../lib/client");
|
|
var extend = require("extend");
|
|
var graph = require("../../lib/api/graph");
|
|
var sinon = require("sinon");
|
|
|
|
describe("api/graph", function(){
|
|
var stub_request;
|
|
beforeEach(function(){
|
|
// Setup `client.request` as a stub
|
|
stub_request = sinon.stub(client, "request");
|
|
});
|
|
afterEach(function(){
|
|
// Reset the original `client.request`
|
|
stub_request.restore();
|
|
stub_request = null;
|
|
});
|
|
describe("#creaetEmbed", function(){
|
|
it("should make a valid api call", function(){
|
|
var graphJSON = {
|
|
viz: "timeseries",
|
|
requests: [
|
|
{
|
|
q: "system.cpu.idle{*}"
|
|
}
|
|
]
|
|
};
|
|
|
|
// Make our api call
|
|
graph.createEmbed(graphJSON, "1_hour", "large", "yes", "test graph embed");
|
|
|
|
// Assert we properly called `client.request`
|
|
assert(stub_request.calledOnce);
|
|
var call_args = stub_request.getCall(0).args;
|
|
// Method and endpoint are correct
|
|
assert.equal(call_args[0], "POST");
|
|
assert.equal(call_args[1], "/graph/embed");
|
|
|
|
// Properly formatted body and content-type
|
|
var params = call_args[2];
|
|
var expectedBody = "graph_json=" + encodeURIComponent(JSON.stringify(graphJSON)) +
|
|
"&timeframe=1_hour&size=large&legend=yes&title=test%20graph%20embed";
|
|
assert.equal(params.body, expectedBody);
|
|
assert(params.contentType, "application/x-form-urlencoded");
|
|
});
|
|
|
|
it("should only require graph_json", function(){
|
|
var graphJSON = {
|
|
viz: "timeseries",
|
|
requests: [
|
|
{
|
|
q: "system.cpu.idle{*}"
|
|
}
|
|
]
|
|
};
|
|
|
|
// Make our api call
|
|
graph.createEmbed(graphJSON);
|
|
|
|
// Assert we properly called `client.request`
|
|
assert(stub_request.calledOnce);
|
|
var call_args = stub_request.getCall(0).args;
|
|
|
|
// Properly formatted body
|
|
var params = call_args[2];
|
|
var expectedBody = "graph_json=" + encodeURIComponent(JSON.stringify(graphJSON));
|
|
assert.equal(params.body, expectedBody);
|
|
});
|
|
});
|
|
});
|