import ReactTestUtils = require('react-addons-test-utils'); const beautifyHtml = require('js-beautify').html const { renderToStaticMarkup } = require('react-dom/server') import * as ReactDOM from "react-dom" const compact = require("lodash/compact") const map = require("lodash/map") export const hasClass = (inst, className)=> { if(ReactTestUtils.isDOMComponent(inst.node)) { return inst.hasClass(className) } else { try { let classes = ReactDOM.findDOMNode(inst.node).className return (' ' + classes + ' ').indexOf(' ' + className + ' ') > -1 } catch (e){} } return false } export function jsxToHTML(Element){ return renderToStaticMarkup(Element).replace(/]*)\/>/g, "") } export const printPrettyHtml = (html)=> { html = beautifyHtml( html, {"indent_size":2} ) .replace(/class=/g, "className=") .replace(/]*)>/g, "") .replace(/readonly=""/g,"readOnly={true}") .replace(/font-size/g,"fontSize") .replace(/style="([^"]+)"+/g, (match, style)=> { let reactStyle = map(compact(style.split(";")), (keyvalue)=> { let [key, value] = keyvalue.split(":") return `${key}:"${value}"` }).join(",") return "style={{" + reactStyle + "}}" }) console.log("\n"+ html) } export const fastClick = (el)=>{ el.simulate("mouseDown", {button:0}) }