mirror of
https://github.com/prymitive/karma
synced 2026-05-07 03:26:52 +00:00
Add more silence.js tests
This commit is contained in:
12
assets/static/__mocks__/ajaxMock.js
Normal file
12
assets/static/__mocks__/ajaxMock.js
Normal 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;
|
||||
15
assets/static/__snapshots__/silence.test.js.snap
Normal file
15
assets/static/__snapshots__/silence.test.js.snap
Normal 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>"
|
||||
`;
|
||||
@@ -328,3 +328,4 @@ function setupSilenceForm() {
|
||||
}
|
||||
|
||||
exports.setupSilenceForm = setupSilenceForm;
|
||||
exports.sendSilencePOST = sendSilencePOST;
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user