Add more silence.js tests

This commit is contained in:
Łukasz Mierzwa
2017-08-15 20:20:35 -07:00
parent 431540c05e
commit 866797cc42
4 changed files with 90 additions and 1 deletions

View File

@@ -0,0 +1,12 @@
const mockXHR = require("mock-xhr");
function createServer(status, payload) {
var server = new mockXHR.server();
server.handle = function (request) {
request.setResponseHeader("Content-Type", "application/json");
request.receive(status, JSON.stringify(payload));
};
return server;
}
exports.createServer = createServer;

View File

@@ -0,0 +1,15 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`failed sendSilencePOST() 1`] = `
"<p class=\\"text-danger\\">
<i class=\\"fa fa-exclamation-circle\\"></i>
request failed
</p>"
`;
exports[`successful sendSilencePOST() 1`] = `
"<p class=\\"text-success\\">
<i class=\\"fa fa-check-circle\\"></i>
abcdef
</p>"
`;

View File

@@ -328,3 +328,4 @@ function setupSilenceForm() {
}
exports.setupSilenceForm = setupSilenceForm;
exports.sendSilencePOST = sendSilencePOST;

View File

@@ -1,5 +1,66 @@
const $ = window.jQuery = require("jquery");
const templatesMock = require("./__mocks__/templatesMock");
const ajaxMock = require("./__mocks__/ajaxMock");
test("silence setupSilenceForm()", () => {
window.jQuery = require("jquery");
var body = templatesMock.loadTemplates();
document.body.innerHTML = body;
const silence = require("./silence");
silence.setupSilenceForm();
});
test("successful sendSilencePOST()", () => {
var body = templatesMock.loadTemplates();
body.push(
"<span class='silence-post-result' " +
" data-uri='http://localhost'>" +
"</span>"
);
document.body.innerHTML = body;
const templates = require("./templates");
templates.init();
const ajaxServer = ajaxMock.createServer(200, {
"status": "success",
"data": {"silenceId": "abcdef"}
});
ajaxServer.start();
const silence = require("./silence");
silence.sendSilencePOST("http://localhost", {});
let resultElem = $(".silence-post-result").html().trim();
expect(resultElem).toMatchSnapshot();
ajaxServer.stop();
});
test("failed sendSilencePOST()", () => {
var body = templatesMock.loadTemplates();
body.push(
"<span class='silence-post-result' " +
" data-uri='http://localhost'>" +
"</span>"
);
document.body.innerHTML = body;
const templates = require("./templates");
templates.init();
const ajaxServer = ajaxMock.createServer(500, {
"status": "success",
"errorType": "server_error",
"error": "request failed"
});
ajaxServer.start();
const silence = require("./silence");
silence.sendSilencePOST("http://localhost", {});
let resultElem = $(".silence-post-result").html().trim();
expect(resultElem).toMatchSnapshot();
ajaxServer.stop();
});