mirror of
https://github.com/prymitive/karma
synced 2026-05-07 03:26:52 +00:00
Add a test for unsilence button
This commit is contained in:
12
assets/static/__mocks__/ajaxSuccessMock.js
Normal file
12
assets/static/__mocks__/ajaxSuccessMock.js
Normal file
@@ -0,0 +1,12 @@
|
||||
const mockXHR = require("mock-xhr");
|
||||
|
||||
function ajaxSuccessMockServer() {
|
||||
var server = new mockXHR.server();
|
||||
server.handle = function (request) {
|
||||
request.setResponseHeader("Content-Type", "application/json");
|
||||
request.receive(200, JSON.stringify({"status":"success"}));
|
||||
};
|
||||
return server;
|
||||
}
|
||||
|
||||
exports.ajaxSuccessMockServer = ajaxSuccessMockServer;
|
||||
@@ -1,5 +1,31 @@
|
||||
test("silence setupSilenceForm()", () => {
|
||||
window.jQuery = require("jquery");
|
||||
const $ = window.jQuery = require("jquery");
|
||||
const templatesMock = require("./__mocks__/templatesMock");
|
||||
|
||||
test("unsilence init()", () => {
|
||||
var body = templatesMock.loadTemplates();
|
||||
body.push(
|
||||
"<button class='silence-delete'" +
|
||||
" data-alertmanager-uri='http://localhost'" +
|
||||
" data-silence-id='abcd'>" +
|
||||
" <span class='fa fa-trash-o'></span>" +
|
||||
"</button>"
|
||||
);
|
||||
document.body.innerHTML = body;
|
||||
|
||||
require("bootstrap/js/tooltip.js");
|
||||
const unsilence = require("./unsilence");
|
||||
|
||||
const ajaxMock = require("./__mocks__/ajaxSuccessMock").ajaxSuccessMockServer();
|
||||
ajaxMock.start();
|
||||
|
||||
unsilence.init();
|
||||
// icon should be trash-o before clicking
|
||||
expect($("button > span.fa").hasClass("fa-trash-o")).toBe(true);
|
||||
$("button.silence-delete").click();
|
||||
// and switch to green check mark in circle after
|
||||
expect($("button > span.fa").hasClass("fa-trash-o")).toBe(false);
|
||||
expect($("button > span.fa").hasClass("fa-check-circle")).toBe(true);
|
||||
expect($("button > span.fa").hasClass("text-success")).toBe(true);
|
||||
|
||||
ajaxMock.stop();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user