mirror of
https://github.com/prymitive/karma
synced 2026-05-05 03:16:51 +00:00
87 lines
2.5 KiB
JavaScript
87 lines
2.5 KiB
JavaScript
const puppeteer = require("puppeteer");
|
|
|
|
let browser;
|
|
let page;
|
|
|
|
describe("Demo", () => {
|
|
beforeAll(async () => {
|
|
jest.setTimeout(10000);
|
|
|
|
browser = await puppeteer.launch();
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await browser.close();
|
|
});
|
|
|
|
beforeEach(async () => {
|
|
page = await browser.newPage();
|
|
await page.goto("http://karma-demo.herokuapp.com/");
|
|
await page.waitForSelector("div.components-grid-alertgrid-alertgroup");
|
|
});
|
|
|
|
it('should be titled "karma-demo"', async () => {
|
|
await expect(page.title()).resolves.toMatch("karma-demo");
|
|
});
|
|
|
|
it("should render alert gruops", async () => {
|
|
const alertGroups = await page.evaluate(() => {
|
|
const anchors = Array.from(
|
|
document.querySelectorAll(
|
|
".components-grid-alertgrid-alertgroup > .card > .card-header"
|
|
)
|
|
);
|
|
return anchors.map((anchor) => anchor.textContent);
|
|
});
|
|
await expect(alertGroups.length).toBeGreaterThan(10);
|
|
await expect(alertGroups).toEqual(
|
|
expect.arrayContaining([
|
|
"alertname: Inhibition Test Alertcluster: prod1",
|
|
"alertname: Disk Free Lowcluster: prod10",
|
|
"alertname: Time Annotationcluster: prod1",
|
|
])
|
|
);
|
|
});
|
|
|
|
it("opens overview modal on click", async () => {
|
|
await page.waitForSelector("div.cursor-pointer.navbar-brand");
|
|
|
|
await page.click("div.cursor-pointer.navbar-brand");
|
|
|
|
await page.waitForSelector("div.modal-content");
|
|
await page.waitForSelector(".components-labelWithPercent-percent");
|
|
|
|
const labels = await page.evaluate(() => {
|
|
const anchors = Array.from(
|
|
document.querySelectorAll(".components-labelWithPercent-percent")
|
|
);
|
|
return anchors.map((anchor) => anchor.textContent);
|
|
});
|
|
await expect(labels.length).toBeGreaterThan(10);
|
|
|
|
await page.click(".modal-header > button.close");
|
|
});
|
|
|
|
it("opens silence modal on click", async () => {
|
|
await page.waitForSelector("#components-new-silence");
|
|
|
|
await page.click("#components-new-silence");
|
|
|
|
await page.waitForSelector("div.modal-content");
|
|
await page.waitForSelector(".modal-body > form");
|
|
|
|
await page.click(".modal-header > nav > button.close");
|
|
});
|
|
|
|
it("opens settings modal on click", async () => {
|
|
await page.waitForSelector("#components-settings");
|
|
|
|
await page.click("#components-settings");
|
|
|
|
await page.waitForSelector("div.modal-content");
|
|
await page.waitForSelector(".modal-body > form.accordion");
|
|
|
|
await page.click(".modal-header > nav > button.close");
|
|
});
|
|
});
|