The JS library to unit test CSS. CSS code coverage reports NOW included!
Why not! The main goal of kandinski.js is to use the power and stability of TDD to test your Application CSS and avoid unexpected issues or regression.
$ yarn add kandinskijs
const kisk = require("kandinskijs");
describe("component css test", function() {
const url = "https://siteurl.com";
const localCssPath = "path/local.css";
before(async function() {
await kisk.init(this, url, localCssPath);
});
after(async function() {
await kisk.destroy();
});
context("mobile viewport", function() {
before(async function() {
const mobileViewport = { width: 320, height: 1 };
await kisk.getPage(mobileViewport);
});
after(async function() {
await kisk.page.close();
});
it("h2 should have a display: flex", async function() {
const selector = ".component";
const cssProperty = "display";
const display = await kisk.getCSSProperty(page, selector, cssProperty);
expect(display).to.eql("flex");
});
});
});
Run the demo locally to try it on your local machine.
init - Initialize kandinskijs with the URL you want to test and inject to the downloaded page your local CSS version.
.init(suite, url, cssPath)
destroy - Destroy the kandinskijs instance.
.destroy()
getPage - Get the page with a specific viewport, and set kandinskijs page property.
.getPage(viewport)
getCSSProperty - Return the CSS property value associated to querySelector
.getCSSProperty(querySelector, property)
getPctCSSProperty - Return the CSS property value associated to querySelector expressed in percentage, value ammitted for property parameters are [width, height].
.getPctCSSProperty(querySelector, property)
getInnerText - Return the text of the querySelector specified.
.getInnerText(querySelector)
cssHelper - Provide helper methods to:
- convert RGB to hexadecimal
.rgbToHex(rgbString)
- convert hexadecimal to RGB
.hexToRgb(hex)
- convert px value to percentage
.pxToPerc(pxSelector, pxParent)
You can find demo files under /demo folder.
index.html
contains the HTML to be tested- local CSS defined in
localBase.css
- test suite, using kandinskijs, is defined in
cssTest.js
Open a CLI and execute:
$ yarn run demo-server
Open another CLI and run CSS unit tests:
$ yarn run demo-test
$ yarn run demo-report
You will find the the report under **logs/cssKTest/lcov-report/demo/**
The demo test suite uses Mocha & Chai.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the MIT License - see the LICENSE.md file for details