Socket
Socket
Sign inDemoInstall

kandinskijs

Package Overview
Dependencies
70
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    kandinskijs

js library to unit test css and generate code coverage report


Version published
Maintainers
1
Install size
338 MB
Created

Readme

Source

kandinski.js

The JS library to unit test CSS. CSS code coverage reports NOW included!

Why kandinski.js

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.

Installing

$ yarn add kandinskijs

Usage overview

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.

API

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)

Demo

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

start the local server

Open a CLI and execute:

$ yarn run demo-server

run the demo tests

Open another CLI and run CSS unit tests:

$ yarn run demo-test

run the demo code coverage report

$ yarn run demo-report

You will find the the report under **logs/cssKTest/lcov-report/demo/**

The demo test suite uses Mocha & Chai.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Keywords

FAQs

Last updated on 16 Dec 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc