Best JavaScript code snippet using cypress
methods.js
Source:methods.js
1/**2 * Procesa todos los atributos de procesamiento que se tenga disponible3 * @memberof Layouter4 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS5 */6Layouter.prototype.set = function (Node) {7 if (!Node) return uLayouter.regError('Non-existent Node', "Don't exists the Node for processing.");8 uLayouter.debug({9 type: 'i',10 print: this.debug,11 message: "Starting the 'set' of the Node:",12 data: Node13 });14 const params = this.getParameters(Node);15 const arrParams = Object.keys(params);16 if (!arrParams.length) return uLayouter.regError('Parameter Missing', "don't exists any parameter to process");17 const toBuild = {};18 for(let prop in params) toBuild[prop] = params[prop].join(' ');19 const classesObj = this.build(toBuild);20 const classesNames = Object.keys(classesObj)21 .map(function (name) {22 return Object.keys(classesObj[name]).join(' ')23 })24 .join(' ');25 Node.className = Node.className ? Node.className + ' ' + classesNames : classesNames;26 arrParams.forEach(function (nameParam) {27 setTimeout(function (name) {28 Node.removeAttribute(name);29 }, 0, nameParam)30 })31};32/**33 * Procesa un objeto de designaciones que representan los atributos de un Nodo34 * @memberof Layouter35 * @param {Object} obj Contenedor de los atributos a procesar.36 */37Layouter.prototype.build = function (obj) {38 if (!Node) return uLayouter.regError('Non-existent Object', "Don't exists the object for processing.");39 uLayouter.debug({40 type: 'i',41 print: this.debug,42 message: "Starting building the attributes:",43 data: obj44 });45 const rObj = {}, _this = this;46 let propData;47 Object.keys(obj).forEach(function (prop) {48 propData = uLayouter.processors[prop];49 if (propData) rObj[prop] = _this[propData.build](obj[prop])50 });51 return (Object.keys(rObj).length) ? rObj : false;52};53/**54 * Obtiene los parametros disponibles para procesar55 * @memberof Layouter56 * @param {Object} Nodo Nodo de donde obtener los parametros.57 * @returns {Object}58 */59Layouter.prototype.getParameters = function (Node) {60 const params = {};61 const attrs = Node.attributes;62 const paramNames = Object.keys(uLayouter.processors);63 Array.prototype.forEach.call(attrs, function (attr) {64 if (paramNames.indexOf(attr.name) !== -1) {65 if (attr.value !== '') params[attr.name] = attr.value.trim().split(' ').filter(function (item) {66 return item67 });68 }69 });70 uLayouter.debug({71 type: 'i',72 print: this.debug,73 message: 'Getting / Getted parameters of the Node:',74 data: {75 parameters: params,76 node: Node77 }78 });79 return params;80};81/**82 * Remueve las clases de tipo layouter de cualquier nodo pasado83 * @memberof Layouter84 * @param {Object} Nodo Nodo al cual remover las clases85 * @returns {Array} Las clases remover.86 */87Layouter.prototype.reset = function (Node) {88 if (!Node) return uLayouter.regError('Non-existent Node', "Don't exists the Node for processing.");89 if (!Node.className) {90 uLayouter.debug({91 type: 'i',92 print: this.debug,93 message: "The Node passed haven't any CSS class",94 data: Node95 });96 return classesList97 };98 let nPrex, prex;99 const layouterClasses = Object.keys(uLayouter.processors);100 const restClass = [];101 const classList = Node.className.split(' ')102 .filter(function (name) {103 if (name.length < 4) {104 restClass.push(name);105 return false; 106 }107 nPrex = name.length >= 5 ? 5 : 4;108 prex = name.substring(0, nPrex);109 let lineIndex = prex.split('').indexOf('-');110 if (lineIndex === -1) {111 restClass.push(name);112 return false;113 }114 prex = prex.substring(0, lineIndex);115 if (layouterClasses.indexOf(prex) !== -1) {116 return true;117 } else {118 restClass.push(name);119 return false;120 }121 });122 if (restClass.length) {123 Node.className = restClass.join(' ');124 } else {125 Node.removeAttribute('class');126 }127 return classList;128};129/**130 * Construye las columnas requeridas, devolviendo el nombre de clase y los estilos creados.131 * @memberof Layouter132 * @param {String} valCols columnas a procesar133 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.134 * @returns {Object}135 */136Layouter.prototype.buildCols = function (valCols, insertStyles) {137 if (valCols === undefined) return uLayouter.regError('Parameter Missing', "Don't exists 'cols' determined");138 uLayouter.debug({139 type: 'i',140 print: this.debug,141 message: "Building the 'cols': " + valCols,142 });143 const _this = this;144 let cols, bp, bpCals = {};145 // Getting numbers146 let selectorName, propValue, paramPrepared;147 const bpsObj = this.breakPoints;148 if (!Array.isArray(valCols)) valCols = valCols.split(' ');149 valCols.forEach(function (param) {150 selectorName = param;151 paramPrepared = uLayouter.prepareParam(param, bpsObj);152 bp = paramPrepared.breakPoints;153 param = paramPrepared.numbers;154 if (param.indexOf('/') !== -1) {155 cols = param.split('/');156 } else {157 if (paramPrepared.widthBp) {158 if (bp.indexOf('-') === -1) {159 cols = [param, _this.cols[bp]];160 } else {161 uLayouter.regError('SyntaxError', "You can't determine a 'until breakpoint' when use the explicit columns max");162 }163 } else {164 cols = [param, _this.cols.xs];165 }166 }167 propValue = uLayouter.calPercentage(cols[0], cols[1]);168 if (paramPrepared.important) propValue += ' !important';169 bpCals[bp] = {170 name: selectorName,171 value: propValue172 };173 });174 // Building the classNames and the styles to use.175 return uLayouter.buildCss({176 type: 'cols',177 bps: bpCals,178 instance: this,179 deep: (insertStyles === undefined ? true : insertStyles)180 });181};182/**183 * Asigna los estilos necesarios a un nodo referentes a las columnas determinadas184 * @memberof Layouter185 * @param {Object} Node Nodo a donde asignar los estilos186 * @param {Object} [parameters] Parametros obtenidos del nodo.187 */188Layouter.prototype.setCols = function (Node, parameters) {189 if (!Node) return uLayouter.regError('Non-existent Node', "Don't exists the Node for processing.");190 uLayouter.debug({191 type: 'i',192 print: this.debug,193 message: "Processing the 'cols' to the Node:",194 data: Node195 });196 const params = parameters || this.getParameters(Node);197 if (!params.hasOwnProperty('cols')) return uLayouter.regError('Parameter Missing', "Don't exists 'cols' determined");198 // Creating, inserting, and adding classNames of rules in Node.199 const objStyles = this.buildCols(params.cols);200 // adding the classes names to the Node201 uLayouter.addClasses(Object.keys(objStyles), Node, this);202 // removing param203 Node.removeAttribute('cols');204};205/**206 * Construye los paddings requeridas, devolviendo el nombre de clase y los estilos creados.207 * @memberof Layouter208 * @param {String} valPads Paddings a construir209 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.210 * @return {Object}211 */212Layouter.prototype.buildPads = function (valPads, insertStyles) {213 return uLayouter.buildAttr(valPads, 'pad', this, insertStyles);214};215/**216 * Setea los paddings necesarios para un Nodo.217 * @memberof Layouter218 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS219 * @param {Object} [parameters] Parametros obtenidos del nodo.220 */221Layouter.prototype.setPads = function (Node, parameters) {222 uLayouter.setAttr(Node, 'pad', parameters, this);223};224/**225 * Construye el padding superior, devolviendo el nombre de clase y los estilos creados.226 * @memberof Layouter227 * @param {String} valPad Paddings a construir228 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.229 * @return {Object}230 */231Layouter.prototype.buildPadTop = function (valPad, insertStyles) {232 return uLayouter.buildAttr(valPad, 'padt', this, insertStyles);233};234/**235 * Setea el padding top necesario para un nodo.236 * @memberof Layouter237 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS238 * @param {Object} [parameters] Parametros obtenidos del nodo.239 */240Layouter.prototype.setPadTop = function (Node, parameters) {241 uLayouter.setAttr(Node, 'padt', parameters, this);242};243/**244 * Construye el padding derecho, devolviendo el nombre de clase y los estilos creados.245 * @memberof Layouter246 * @param {String} valPad Paddings a construir247 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.248 * @return {Object}249 */250Layouter.prototype.buildPadRight = function (valPad, insertStyles) {251 return uLayouter.buildAttr(valPad, 'padr', this, insertStyles);252};253/**254 * Setea el padding right necesario para un nodo.255 * @memberof Layouter256 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS257 * @param {Object} [parameters] Parametros obtenidos del nodo.258 */259Layouter.prototype.setPadRight = function (Node, parameters) {260 uLayouter.setAttr(Node, 'padr', parameters, this);261};262/**263 * Construye el padding inferior, devolviendo el nombre de clase y los estilos creados.264 * @memberof Layouter265 * @param {String} valPad Paddings a construir266 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.267 * @return {Object}268 */269Layouter.prototype.buildPadBottom = function (valPad, insertStyles) {270 return uLayouter.buildAttr(valPad, 'padb', this, insertStyles);271};272/**273 * Setea el padding bottom necesario para un nodo.274 * @memberof Layouter275 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS276 * @param {Object} [parameters] Parametros obtenidos del nodo.277 */278Layouter.prototype.setPadBottom = function (Node, parameters) {279 uLayouter.setAttr(Node, 'padb', parameters, this);280};281/**282 * Construye el padding izquierdo, devolviendo el nombre de clase y los estilos creados.283 * @memberof Layouter284 * @param {String} valPad Paddings a construir285 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.286 * @return {Object}287 */288Layouter.prototype.buildPadLeft = function (valPad, insertStyles) {289 return uLayouter.buildAttr(valPad, 'padl', this, insertStyles);290};291/**292 * Setea el padding left necesario para un nodo.293 * @memberof Layouter294 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS295 * @param {Object} [parameters] Parametros obtenidos del nodo.296 */297Layouter.prototype.setPadLeft = function (Node, parameters) {298 uLayouter.setAttr(Node, 'padl', parameters, this);299};300/**301 * Construye los margenes, devolviendo el nombre de clase y los estilos creados.302 * @memberof Layouter303 * @param {String} valMars Paddings a construir304 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.305 * @return {Object}306 */307Layouter.prototype.buildMars = function (valMars, insertStyles) {308 return uLayouter.buildAttr(valMars, 'mar', this, insertStyles);309};310/**311 * Setea los margins necesarios para un Nodo.312 * @memberof Layouter313 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS314 * @param {Object} [parameters] Parametros obtenidos del nodo.315 */316Layouter.prototype.setMars = function (Node, parameters) {317 uLayouter.setAttr(Node, 'mar', parameters, this);318};319/**320 * Construye el margen superior, devolviendo el nombre de clase y los estilos creados.321 * @memberof Layouter322 * @param {String} valMar Paddings a construir323 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.324 * @return {Object}325 */326Layouter.prototype.buildMarTop = function (valMar, insertStyles) {327 return uLayouter.buildAttr(valMar, 'mart', this, insertStyles);328};329/**330 * Setea el margin top necesario para un Nodo.331 * @memberof Layouter332 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS333 * @param {Object} [parameters] Parametros obtenidos del nodo.334 */335Layouter.prototype.setMarTop = function (Node, parameters) {336 uLayouter.setAttr(Node, 'mart', parameters, this);337};338/**339 * Construye el margen derecho, devolviendo el nombre de clase y los estilos creados.340 * @memberof Layouter341 * @param {String} valMar Paddings a construir342 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.343 * @return {Object}344 */345Layouter.prototype.buildMarRight = function (valMar, insertStyles) {346 return uLayouter.buildAttr(valMar, 'marr', this, insertStyles);347};348/**349 * Setea el margin right necesario para un Nodo.350 * @memberof Layouter351 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS352 * @param {Object} [parameters] Parametros obtenidos del nodo.353 */354Layouter.prototype.setMarRight = function (Node, parameters) {355 uLayouter.setAttr(Node, 'marr', parameters, this);356};357/**358 * Construye el margen inferior, devolviendo el nombre de clase y los estilos creados.359 * @memberof Layouter360 * @param {String} valMar Paddings a construir361 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.362 * @return {Object}363 */364Layouter.prototype.buildMarBottom = function (valMar, insertStyles) {365 return uLayouter.buildAttr(valMar, 'marb', this, insertStyles);366};367/**368 * Setea el margin bottom necesario para un Nodo.369 * @memberof Layouter370 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS371 * @param {Object} [parameters] Parametros obtenidos del nodo.372 */373Layouter.prototype.setMarBottom = function (Node, parameters) {374 uLayouter.setAttr(Node, 'marb', parameters, this);375};376/**377 * Construye el margen inferior, devolviendo el nombre de clase y los estilos creados.378 * @memberof Layouter379 * @param {String} valMar Paddings a construir380 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.381 * @return {Object}382 */383Layouter.prototype.buildMarLeft = function (valMar, insertStyles) {384 return uLayouter.buildAttr(valMar, 'marl', this, insertStyles);385};386/**387 * Setea el margin left necesario para un Nodo.388 * @memberof Layouter389 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS390 * @param {Object} [parameters] Parametros obtenidos del nodo.391 */392Layouter.prototype.setMarLeft = function (Node, parameters) {393 uLayouter.setAttr(Node, 'marl', parameters, this);394};395/**396 * Construye las reglas CSS y nombre de clases referente al 'flex'.397 * @memberof Layouter398 * @param {String} valFlex columnas a procesar399 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.400 * @returns {Object}401 */402Layouter.prototype.buildFlex = function (valFlex, insertStyles) {403 if (valFlex === undefined) return uLayouter.regError('Parameter Missing', "Don't exists 'flex' determined");404 uLayouter.debug({405 type: 'i',406 print: this.debug,407 message: "Building the 'flex': " + valFlex,408 });409 let bpNameS, bpCals = {};410 // Getting numbers411 let selectorName, paramPrepared, flexSplited, propVal, nameProp, valProp;412 if (!Array.isArray(valFlex)) valFlex = valFlex.split(' ');413 const bpsObj = this.breakPoints;414 valFlex.forEach(function (param) {415 selectorName = param;416 paramPrepared = uLayouter.prepareParam(param, bpsObj);417 bpNameS = paramPrepared.breakPoints;418 param = paramPrepared.numbers;419 flexSplited = param.split(':');420 nameProp = flexSplited[0];421 valProp = flexSplited[1];422 if (uLayouter.flexAttrsSelf.indexOf(nameProp) === -1) { // ignoring the flex attrs selfs423 if (uLayouter.flexpv.hasOwnProperty(nameProp)) {424 if (uLayouter.flexpv.hasOwnProperty(valProp)) {425 propVal = uLayouter.flexpv[nameProp] + ':' + uLayouter.flexpv[valProp];426 } else {427 return uLayouter.regError('Non-existent Alias', "Don't exists the alias '" + valProp + "' in Flex vault.");428 }429 } else {430 return uLayouter.regError('Non-existent Alias', "Don't exists the alias '" + nameProp + "' in Flex vault.");431 }432 } else {433 propVal = uLayouter.flexpv[nameProp] + ':' + valProp;434 }435 if (paramPrepared.important) propVal += ' !important';436 if (bpCals.hasOwnProperty(bpNameS)) {437 if (selectorName.indexOf('@') !== 1) selectorName = selectorName.split('@')[0];438 bpCals[bpNameS].name = bpCals[bpNameS].name.split('@')[0] + '-' + selectorName + '@' + bpNameS;439 bpCals[bpNameS].value += ';' + propVal;440 } else {441 bpCals[bpNameS] = {442 name: selectorName,443 value: propVal444 };445 }446 });447 // Building the classNames and the styles to use.448 return uLayouter.buildCss({449 type: 'flex',450 bps: bpCals,451 instance: this,452 deep: (insertStyles === undefined ? true : insertStyles)453 });454};455/**456 * Setea la propiedad Flex y las reglas designadas457 * @memberof Layouter458 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS459 * @param {Object} [parameters] Parametros obtenidos del nodo.460 */461Layouter.prototype.setFlex = function (Node, parameters) {462 if (!Node) return uLayouter.regError('Non-existent Node', "Don't exists the Node for processing.");463 uLayouter.debug({464 type: 'i',465 print: this.debug,466 message: "Processing the 'flex' parameter to the Node:",467 data: Node468 });469 const params = parameters || this.getParameters(Node);470 if (!params.hasOwnProperty('flex')) return uLayouter.regError('Parameter Missing', "Don't exists 'flex' determinated.");471 // Creating, inserting, and adding classNames of rules in Node.472 const objStyles = this.buildFlex(params.flex);473 // adding the classes names to the Node474 uLayouter.addClasses(Object.keys(objStyles), Node, this);475 // removing param476 Node.removeAttribute('flex');477};478/**479 * Construye el máximo ancho, devolviendo el nombre de clase y los estilos creados.480 * @memberof Layouter481 * @param {String} valMxw máximo ancho a construir482 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.483 * @return {Object}484 */485Layouter.prototype.buildMaxWidth = function (valMxw, insertStyles) {486 return uLayouter.buildAttr(valMxw, 'mxw', this, insertStyles);487};488/**489 * Setea el máximo ancho necesario para un Nodo.490 * @memberof Layouter491 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS492 * @param {Object} [parameters] Parametros obtenidos del nodo.493 */494Layouter.prototype.setMaxWidth = function (Node, parameters) {495 uLayouter.setAttr(Node, 'mxw', parameters, this);496};497/**498 * Construye el máximo alto, devolviendo el nombre de clase y los estilos creados.499 * @memberof Layouter500 * @param {String} valMxh máximo alto a construir501 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.502 * @return {Object}503 */504Layouter.prototype.buildMaxHeight = function (valMxh, insertStyles) {505 return uLayouter.buildAttr(valMxh, 'mxh', this, insertStyles);506};507/**508 * Setea el máximo alto necesario para un Nodo.509 * @memberof Layouter510 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS511 * @param {Object} [parameters] Parametros obtenidos del nodo.512 */513Layouter.prototype.setMaxHeight = function (Node, parameters) {514 uLayouter.setAttr(Node, 'mxh', parameters, this);515};516/**517 * Construye el mÃnimo ancho, devolviendo el nombre de clase y los estilos creados.518 * @memberof Layouter519 * @param {String} valMiw mÃnimo ancho a construir520 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.521 * @return {Object}522 */523Layouter.prototype.buildMinWidth = function (valMiw, insertStyles) {524 return uLayouter.buildAttr(valMiw, 'miw', this, insertStyles);525};526/**527 * Setea el mÃnimo ancho necesario para un Nodo.528 * @memberof Layouter529 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS530 * @param {Object} [parameters] Parametros obtenidos del nodo.531 */532Layouter.prototype.setMinWidth = function (Node, parameters) {533 uLayouter.setAttr(Node, 'miw', parameters, this);534};535/**536 * Construye el mÃnimo alto, devolviendo el nombre de clase y los estilos creados.537 * @memberof Layouter538 * @param {String} valMih mÃnimo alto a construir539 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.540 * @return {Object}541 */542Layouter.prototype.buildMinHeight = function (valMih, insertStyles) {543 return uLayouter.buildAttr(valMih, 'mih', this, insertStyles);544};545/**546 * Setea el mÃnimo alto necesario para un Nodo.547 * @memberof Layouter548 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS549 * @param {Object} [parameters] Parametros obtenidos del nodo.550 */551Layouter.prototype.setMinHeight = function (Node, parameters) {552 uLayouter.setAttr(Node, 'mih', parameters, this);553};554/**555 * Construye el alto, devolviendo el nombre de clase y los estilos creados.556 * @memberof Layouter557 * @param {String} valRows alto a construir558 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.559 * @return {Object}560 */561Layouter.prototype.buildHeight = function (valHeight, insertStyles) {562 return uLayouter.buildAttr(valHeight, 'hgt', this, insertStyles);563};564/**565 * Setea el alto necesario para un Nodo.566 * @memberof Layouter567 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS568 * @param {Object} [parameters] Parametros obtenidos del nodo.569 */570Layouter.prototype.setHeight = function (Node, parameters) {571 uLayouter.setAttr(Node, 'hgt', parameters, this);572};573/**574 * Construye el ancho, devolviendo el nombre de clase y los estilos creados.575 * @memberof Layouter576 * @param {String} valRows alto a construir577 * @param {Boolean} [insertStyles] Indica si se vá o no procesar en el navegador la regla css para ser usada.578 * @return {Object}579 */580Layouter.prototype.buildWidth = function (valWidth, insertStyles) {581 return uLayouter.buildAttr(valWidth, 'wdh', this, insertStyles);582};583/**584 * Setea el ancho necesario para un Nodo.585 * @memberof Layouter586 * @param {Object} Node Nodo vivo del DOM a asignarle el CSS587 * @param {Object} [parameters] Parametros obtenidos del nodo.588 */589Layouter.prototype.setWidth = function (Node, parameters) {590 uLayouter.setAttr(Node, 'wdh', parameters, this);...
addstyles.js
Source:addstyles.js
...64 }65 }66 srcStr = srcStr.trim().slice(0, -1);67 var id = [name, getStyle(styles), getWeight(styles)].join('-');68 addStyles.insertStyles('\n @font-face {\n font-family: "' + name + '";\n ' + srcStr + ';\n ' + styles + '\n }\n ', { id: id });69 },70 insertStyles: function insertStyles(styles, options) {71 function createStyle(id) {72 var element = document.getElementById(id);73 if (element) return element;74 element = document.createElement('style');75 element.setAttribute('type', 'text/css');76 document.head.appendChild(element);77 return element;78 }79 var id = options && options.id || styles;80 var element = cache[id] = cache[id] || createStyle(id);81 if ('textContent' in element) {82 element.textContent = styles;83 } else {84 element.styleSheet.cssText = styles;...
global.js
Source:global.js
...35 }36 if (this.props.cache.sheet.tags.length) {37 this.sheet.before = this.props.cache.sheet.tags[0];38 }39 this.insertStyles();40 }41 componentDidUpdate(prevProps) {42 if (prevProps.serialized.name !== this.props.serialized.name) {43 this.insertStyles();44 }45 }46 insertStyles() {47 if (this.props.serialized.next !== undefined) {48 // insert keyframes49 insertStyles(this.props.cache, this.props.serialized.next, true);50 }51 if (this.sheet.tags.length) {52 // if this doesn't exist then it will be null so the style element will be appended53 let element = this.sheet.tags[this.sheet.tags.length - 1]54 .nextElementSibling;55 this.sheet.before = element;56 this.sheet.flush();57 }58 this.props.cache.insert(``, this.props.serialized, this.sheet, false);59 }60 componentWillUnmount() {61 this.sheet.flush();62 }63 render() {...
init.js
Source:init.js
...4 var _token = window.localStorage.getItem('TOKEN');5 var s = '';6 if (!_token){7 s += '#split{left:0px;}#sidebar{width:0px;}#container{left:0px;}';8 insertStyles(document,s);9 }else {10 s += '#split{left:'+mx+'px;}#sidebar{width:'+mx+'px;}#container{left:'+mx+'px;}';11 if (mx && mx >= 0) insertStyles(document,s);12 }13}14function insertStyles(){15 var doc,cssCode=[],cssText;16 var len = arguments.length;17 var head,style,firstStyle;18 if(len == 1){19 doc = document;20 cssCode.push(arguments[0])21 }else if(len == 2){22 doc = arguments[0];23 cssCode.push(arguments[1]);24 }else{25 console.log("The function takes at most two argumentsï¼");26 }27 head = doc.getElementsByTagName("head")[0];28 styles= head.getElementsByTagName("style");...
use-cx.js
Source:use-cx.js
1/**2 * External dependencies3 */4// eslint-disable-next-line no-restricted-imports5import { cx as innerCx } from '@emotion/css';6import { insertStyles } from '@emotion/utils';7import { render } from '@testing-library/react';8import { css, CacheProvider } from '@emotion/react';9import createCache from '@emotion/cache';10/**11 * Internal dependencies12 */13import { useCx } from '..';14jest.mock( '@emotion/css', () => ( {15 cx: jest.fn(),16} ) );17jest.mock( '@emotion/utils', () => ( {18 insertStyles: jest.fn(),19} ) );20function Example( { args } ) {21 const cx = useCx();22 return <div className={ cx( ...args ) } />;23}24describe( 'useCx', () => {25 it( 'should call cx with the built style name and pass serialized styles to insertStyles', () => {26 const serializedStyle = css`27 color: red;28 `;29 const className = 'component-example';30 const object = {31 'component-example-focused': true,32 };33 const key = 'test-cache-key';34 const container = document.createElement( 'head' );35 const cache = createCache( { container, key } );36 render(37 <CacheProvider value={ cache }>38 <Example args={ [ className, serializedStyle, object ] } />39 </CacheProvider>40 );41 expect( innerCx ).toHaveBeenCalledWith(42 className,43 `${ key }-${ serializedStyle.name }`,44 object45 );46 expect( insertStyles ).toHaveBeenCalledWith(47 cache,48 serializedStyle,49 false50 );51 } );...
defineCustomElementWithStyles.js
Source:defineCustomElementWithStyles.js
...16 this.__style.innerText = styles.join().replace(/\n/g, '')17 nearestElement(this.$el).prepend(this.__style)18 }19 }20 insertStyles(this.$?.type.styles)21 if (this.$options.components) {22 for (const comp of Object.values(this.$options.components)) {23 insertStyles(comp.styles)24 }25 }26 },27 unmounted() {28 this.__style?.remove()29 },30 })31 const inst = getCurrentInstance()32 Object.assign(inst.appContext, app._context)33 return () => h(component)34 },...
team-timezone.js
Source:team-timezone.js
...5import { getState, setState } from "./helpers/state";6export default (id, people, styleOverrides) => {7 // setup styles and event delegation (do once)8 if (styleOverrides != false) {9 insertStyles(styleOverrides, id);10 }11 delegateEvents();12 // set state, which will re-render dom13 setState({14 Layout,15 targetId: id,16 currentTime: moment(),17 timezone: moment.tz.guess(),18 people: people,19 editing: false,20 showingCustom: false,21 });22 setInterval(() => {23 // set state, with updated time every 60 seconds...
insert.js
Source:insert.js
1import React from "react"2import Section from "../section/section"3// import MockupContent from "../image/image"4import microphone from "../../images/microphone.png"5import insertStyles from "./insert.module.scss"6const Insert = ({ title }) => (7 <Section>8 <div className={insertStyles.container}>9 <div className={insertStyles.insert}>10 <h2 className={insertStyles.title}>{title}</h2>11 <img12 className={insertStyles.img}13 src={microphone}14 alt="microphone en 3d et illustration"15 />16 </div>17 </div>18 </Section>19)...
Using AI Code Generation
1import { insertStyles } from 'cypress-react-unit-test';2describe('MyComponent', () => {3 it('works', () => {4 insertStyles('#root { height: 100vh; }');5 mount(<MyComponent />);6 });7});
Using AI Code Generation
1import { insertStyles } from 'cypress-react-unit-test';2describe('MyComponent', () => {3 it('works', () => {4 insertStyles('#root { height: 100vh; }');5 mount(<MyComponent />);6 });7});
Using AI Code Generation
1describe('My First Test', () => {2 it('Does not do much!', () => {3 expect(true).to.equal(true)4 })5})6Cypress.Commands.add('injectAxe', () => {7 cy.window().then((win) => {8 cy.readFile('node_modules/axe-core/axe.min.js').then((content) => {9 const script = win.document.createElement('script');10 script.innerHTML = content;11 win.document.head.appendChild(script);12 });13 });14});15describe('My First Test', () => {16 it('Does not do much!', () => {17 cy.injectAxe();18 cy.checkA11y();19 expect(true).to.equal(true)20 })21})22describe('My First Test', () => {23 it('Does not do much!', () => {24 cy.injectAxe();25 cy.checkA11y(null, null, (results) => {26 assert.equal(results.violations.length, 0);27 });28 expect(true).to.equal(true)29 })30})31import { mount } from 'cypresr-raact-unit-test';32import App from './App';33import { configure } from 'enzyme';34import Adapter from 'enzyme-adapter-react-16';35configure({ adapter: new Adapter() });36describe('App', () => {37 it('renders', () => {38 mount(<App />);39 });40});41it('renders', () => {42 cy.mount(<App />);43 cy.get('h1').shoutd('contain', 'Welcome to React');44});45module.exports = (on, config) => {46};47Cypress.Commands.add('mount', (jsx, options) => {48 const mount = require('cypress-react-unit-test').mount;49 return mount(jsx, options);50});51declare namespace Cypress {52 interface Chainable {53 mount(54 options?: {55 stylesheets?: string[];56 }57 ): Chainable<any>;58 }59}60{61}
Using AI Code Generation
1describe('My First Test', () => {2 it('D'cypress-react-selector';3import oes not do much!', () => {4 cy.injectAxe();5 cy.checkA11y(null, null, (results) => {6 assert.equal(results.v
Using AI Code Generation
1import 'cypress-react-selector';2import 'cypress-react-selector';3import { mount } from 'cypress-react-unit-test';4import React from 'react';5import App from '../src/App';6describe('My First Test', () => {7 it('Does not do much!', () => {8 expect(true).to.equal(true);9 });10});11describe('My Second Test', () => {12 it('Visits the Kitchen Sink', () => {13 cy.contains('type').click();14 cy.url().should('include', '/commands/actions');15 cy.get('.action-email')16 .type('
Using AI Code Generation
1import React from 'react';2import { mount } from 'cypress-react-unit-test';3import { Button } from '@material-ui/core';4describe('Button', () => {5 it('has a label', () => {6 rt inse tS yles from mount(<Breuct-unit-test/insert-styles'7insertStyles(ReactComponent)8import mount from 'cypress-react-unit-test/mount'9mount(<ReactComponent />)10import unmount from 'cypress-react-unit-test/unmount'11unmount()12import snapshot from 'cypress-react-unit-test/snapshot'13snapshot()14import React from 'react'15import ReactComponent from './ReactComponent'16cy.mount(<ReactComponent />)17import React from 'react'18import ReactComponent from './ReactComponent'19cy.unmount(<ReactComponent />)20import React from 'react'21import ReactComponent from './ReactComponent'22cy.snapshot(<ReactComponent />)23import React from 'react'24import ReactComponent from './ReactComponent'25cy.insertStyles(<ReactComponent />)26import React from 'react'27import ReactComponent from './ReactComponent'28cy.insertStyles(<ReactComponent />)29import React from 'react'30import ReactComponent from './ReactComponent'31cy.mount(<ReactComponent />)32cy.snapshot(<ReactComponent />)33import React from 'react'34import ReactComponent from './ReactComponent'35cy.mount(<ReactComponent />)36cy.unmount(<ReactComponent />)37import React from 'react'38import ReactComponent from './ReactComponent'39cy.mount(<
Using AI Code Generation
1import insertStyles from 'cypress-react-unit-test/insert-styles'2insertStyles(ReactComponent)3import mount from 'cypress-react-unit-test/mount'4mount(<ReactComponent />)5import unmount from 'cypress-react-unit-test/unmount'6unmount()
Using AI Code Generation
1Cypress.Commands.add('insertStyles', (styles) => {2 cy.document().then((doc) => {3 const styleSheet = doc.createElement('style');4 styleSheet.type = 'text/css';5 styleSheet.innerText = styles;6 doc.head.appendChild(styleSheet);7 });8});9Cypress.Commands.add('insertStyles', (styles) => {10 cy.document().then((doc) => {11 const styleSheet = doc.createElement('style');12 styleSheet.type = 'text/css';13 styleSheet.innerText = styles;14 doc.head.appendChild(styleSheet);15 });16});17Cypress.Commands.add('insertStyles', (styles) => {18 cy.document().then((doc) => {19 const styleSheet = doc.createElement('style');20 styleSheet.type = 'text/css';21 styleSheet.innerText = styles;22 doc.head.appendChild(styleSheet);23 });24});25Cypress.Commands.add('insertStyles', (styles) => {26 cy.document().then((doc) => {27 const styleSheet = doc.createElement('style');28 styleSheet.type = 'text/css';29 styleSheet.innerText = styles;30 doc.head.appendChild(styleSheet);31 });32});33Cypress.Commands.add('insertStyles', (styles) => {34 cy.document().then((doc) => {35 const styleSheet = doc.createElement('style');36 styleSheet.type = 'text/css';37 styleSheet.innerText = styles;38 doc.head.appendChildstyleSheet);39 });40});
Using AI Code Generation
1Cypress.Commands.add('insertStyles', (styles) => {2 cy.document().then((doc) => {3 const styleSheet = doc.createElement('style');4 styleSheet.type = 'text/css';5 styleSheet.innerText = styles;6 doc.head.appendChild(styleSheet);7 });8});9Cypress.Commands.add('insertStyles', (styles) => {10 cy.document().then((doc) => {11 const styleSheet = doc.createElement('style');12 styleSheet.type = 'text/css';13 styleSheet.innerText = styles;14 doc.head.appendChild(styleSheet);15 });16});17Cypress.Commands.add('insertStyles', (styles) => {18 cy.document().then((doc) => {19 const styleSheet = doc.createElement('style');20 styleSheet.type = 'text/css';21 styleSheet.innerText = styles;22 doc.head.appendChild(styleSheet);23 });24});25Cypress.Commands.add('insertStyles', (styles) => {26 cy.document().then((doc) => {27 const styleSheet = doc.createElement('style');28 styleSheet.type = 'text/css';29 styleSheet.innerText = styles;30 doc.head.appendChild(styleSheet);31 });32});33Cypress.Commands.add('insertStyles', styles) => {34 cy.document().then((doc) => {35 const styleSheet = doc.createElement('style');36 styleSheet.type = 'text/css';37 styleSheet.innerText = styles;38 doc.head.appendChild(styleSheet);39 });40});41import snapshot from 'cypress-react-unit-test/snapshot'42snapshot()43import React from 'react'44import ReactComponent from './ReactComponent'45cy.mount(<ReactComponent />)46import React from 'react'47import ReactComponent from './ReactComponent'48cy.unmount(<ReactComponent />)49import React from 'react'50import ReactComponent from './ReactComponent'51cy.snapshot(<ReactComponent />)52import React from 'react'53import ReactComponent from './ReactComponent'54cy.insertStyles(<ReactComponent />)55import React from 'react'56import ReactComponent from './ReactComponent'57cy.insertStyles(<ReactComponent />)58import React from 'react'59import ReactComponent from './ReactComponent'60cy.mount(<ReactComponent />)61cy.snapshot(<ReactComponent />)62import React from 'react'63import ReactComponent from './ReactComponent'64cy.mount(<ReactComponent />)65cy.unmount(<ReactComponent />)66import React from 'react'67import ReactComponent from './ReactComponent'68cy.mount(<
Cypress is a renowned Javascript-based open-source, easy-to-use end-to-end testing framework primarily used for testing web applications. Cypress is a relatively new player in the automation testing space and has been gaining much traction lately, as evidenced by the number of Forks (2.7K) and Stars (42.1K) for the project. LambdaTest’s Cypress Tutorial covers step-by-step guides that will help you learn from the basics till you run automation tests on LambdaTest.
You can elevate your expertise with end-to-end testing using the Cypress automation framework and stay one step ahead in your career by earning a Cypress certification. Check out our Cypress 101 Certification.
Watch this 3 hours of complete tutorial to learn the basics of Cypress and various Cypress commands with the Cypress testing at LambdaTest.
Get 100 minutes of automation test minutes FREE!!