UNPKG

@trinitymirrordigital/dragonfly-jest-config

Version:
54 lines (47 loc) 1.44 kB
const isElement = require('lodash/isElement'); // eslint-disable-line expect.extend({ toHaveShadowElement(received, argument) { // console.log(received, argument) const el = received.shadowRoot.querySelector(argument); if (isElement(el)) { return { pass: true, message: () => `expected ${received.tagName} to have element ${argument}`, }; } return { pass: false, message: () => `expected ${received.tagName} not to have element ${argument}`, }; }, }); expect.extend({ toHaveShadowClass(received, query, css) { const el = received.shadowRoot.querySelector(query); if (isElement(el) && el.classList.contains(css)) { return { pass: true, message: () => `expected ${received.tagName} to have element ${query} with .${css}`, }; } return { pass: false, message: () => `expected ${received.tagName} not to have element ${query} with .${css}`, }; }, }); expect.extend({ toHaveShadowClass(received, query, css) { const el = received.shadowRoot.querySelector(query); if (isElement(el) && el.classList.contains(css)) { return { pass: true, message: () => `expected ${received.tagName} to have element ${query} with .${css}`, }; } return { pass: false, message: () => `expected ${received.tagName} not to have element ${query} with .${css}`, }; }, });