github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/test/integration/test-fixtures/npm-lock/node_modules/insert-css/test.js (about) 1 var test = require('tape'); 2 3 test(function (t) { 4 var insertCss = require('./'); 5 var initialNbStyleTags = nbStyleTags(); 6 7 // basic usage 8 var baseStyle = 'body{position:relative;text-decoration:overline}'; 9 insertCss(baseStyle); 10 t.equal(position(), 'relative', 'initial position is `relative`'); 11 12 // adds one style tag 13 t.equal(nbStyleTags(), initialNbStyleTags + 1, 'we added one style tag'); 14 15 // default to appending style 16 var appendStyle = 'body{position:absolute}'; 17 var appendStyleTag = insertCss(appendStyle); 18 t.equal(position(), 'absolute', 'new position is `absolute`'); 19 20 // reuse same style tag 21 t.equal(nbStyleTags(), initialNbStyleTags + 1, 'we kept using the same style tag'); 22 23 // prepend should add a new style tag before the append one 24 t.equal(textDecoration(), 'overline', 'text-decoration is overline by default'); 25 var prependStyleTag = insertCss('body{text-decoration:underline !important}', {prepend: true}); 26 t.equal(nbStyleTags(), initialNbStyleTags + 2, 'we added a new style tag'); 27 t.equal(textDecoration(), 'underline', 'text-decoration is now underline'); 28 var tag = prependStyleTag; 29 while (tag !== appendStyleTag) { 30 tag = tag.nextSibling; 31 } 32 t.equal(tag, appendStyleTag, 'prepend mode should add a style tag before the append one'); 33 34 // uses old school styleSheet prop when present (IE) 35 if (!appendStyleTag.styleSheet) { 36 appendStyleTag.styleSheet = {cssText: 'a'}; 37 insertCss('p{color:blue}'); 38 t.equal(appendStyleTag.styleSheet.cssText, 'ap{color:blue}', 'we use old school styleSheet prop'); 39 delete appendStyleTag.styleSheet; 40 } 41 42 // allow re-adding added style 43 insertCss(baseStyle); 44 t.equal(position(), 'relative', 'position is again `relative`'); 45 46 // allow using a custom container 47 var customContainer = document.createElement('div'); 48 document.querySelector('body').appendChild(customContainer); 49 t.equal(nbStyleTags(customContainer), 0, 'no style tag in custom container'); 50 insertCss('body{position:absolute}', {container: customContainer}); 51 t.equal(nbStyleTags(customContainer), 1, 'new style tag added in custom container'); 52 t.equal(position(), 'absolute', 'position is absolute again'); 53 54 t.end(); 55 }); 56 57 test(function testEmpty(t) { 58 var insertCss = require('./'); 59 60 t.equal(insertCss(), false, 'insertCss() with no arguments returns `false`'); 61 62 t.end(); 63 }); 64 65 function position() { 66 var getStyle = require('computed-style'); 67 return getStyle(document.querySelector('body'), 'position'); 68 } 69 70 function textDecoration() { 71 var getStyle = require('computed-style'); 72 return getStyle(document.querySelector('body'), 'text-decoration'); 73 } 74 75 function nbStyleTags(container) { 76 if (!container) container = document; 77 return container.querySelectorAll('style').length 78 }