Latest updates from IceHrmPro
This commit is contained in:
78
web/node_modules/insert-css/test.js
generated
vendored
Normal file
78
web/node_modules/insert-css/test.js
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
var test = require('tape');
|
||||
|
||||
test(function (t) {
|
||||
var insertCss = require('./');
|
||||
var initialNbStyleTags = nbStyleTags();
|
||||
|
||||
// basic usage
|
||||
var baseStyle = 'body{position:relative;text-decoration:overline}';
|
||||
insertCss(baseStyle);
|
||||
t.equal(position(), 'relative', 'initial position is `relative`');
|
||||
|
||||
// adds one style tag
|
||||
t.equal(nbStyleTags(), initialNbStyleTags + 1, 'we added one style tag');
|
||||
|
||||
// default to appending style
|
||||
var appendStyle = 'body{position:absolute}';
|
||||
var appendStyleTag = insertCss(appendStyle);
|
||||
t.equal(position(), 'absolute', 'new position is `absolute`');
|
||||
|
||||
// reuse same style tag
|
||||
t.equal(nbStyleTags(), initialNbStyleTags + 1, 'we kept using the same style tag');
|
||||
|
||||
// prepend should add a new style tag before the append one
|
||||
t.equal(textDecoration(), 'overline', 'text-decoration is overline by default');
|
||||
var prependStyleTag = insertCss('body{text-decoration:underline !important}', {prepend: true});
|
||||
t.equal(nbStyleTags(), initialNbStyleTags + 2, 'we added a new style tag');
|
||||
t.equal(textDecoration(), 'underline', 'text-decoration is now underline');
|
||||
var tag = prependStyleTag;
|
||||
while (tag !== appendStyleTag) {
|
||||
tag = tag.nextSibling;
|
||||
}
|
||||
t.equal(tag, appendStyleTag, 'prepend mode should add a style tag before the append one');
|
||||
|
||||
// uses old school styleSheet prop when present (IE)
|
||||
if (!appendStyleTag.styleSheet) {
|
||||
appendStyleTag.styleSheet = {cssText: 'a'};
|
||||
insertCss('p{color:blue}');
|
||||
t.equal(appendStyleTag.styleSheet.cssText, 'ap{color:blue}', 'we use old school styleSheet prop');
|
||||
delete appendStyleTag.styleSheet;
|
||||
}
|
||||
|
||||
// allow re-adding added style
|
||||
insertCss(baseStyle);
|
||||
t.equal(position(), 'relative', 'position is again `relative`');
|
||||
|
||||
// allow using a custom container
|
||||
var customContainer = document.createElement('div');
|
||||
document.querySelector('body').appendChild(customContainer);
|
||||
t.equal(nbStyleTags(customContainer), 0, 'no style tag in custom container');
|
||||
insertCss('body{position:absolute}', {container: customContainer});
|
||||
t.equal(nbStyleTags(customContainer), 1, 'new style tag added in custom container');
|
||||
t.equal(position(), 'absolute', 'position is absolute again');
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test(function testEmpty(t) {
|
||||
var insertCss = require('./');
|
||||
|
||||
t.equal(insertCss(), false, 'insertCss() with no arguments returns `false`');
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
function position() {
|
||||
var getStyle = require('computed-style');
|
||||
return getStyle(document.querySelector('body'), 'position');
|
||||
}
|
||||
|
||||
function textDecoration() {
|
||||
var getStyle = require('computed-style');
|
||||
return getStyle(document.querySelector('body'), 'text-decoration');
|
||||
}
|
||||
|
||||
function nbStyleTags(container) {
|
||||
if (!container) container = document;
|
||||
return container.querySelectorAll('style').length
|
||||
}
|
||||
Reference in New Issue
Block a user