UTest({
'should transform css and html using block-css' () {
var css = `
.foo { color: red }
.foo .item { background: green;}
`;
var awaitCss = `
.MyID { color: red }
.MyID__item { background: green;}
`;
var html = `
`;
var awaitHtml = `
`;
var { template, css } = AutoBem.transform(html, css, {
scopeId: 'MyID'
});
eq_(template, awaitHtml);
eq_(css, awaitCss);
},
'should transform css and html using host-css' () {
var css = `
:host { color: red }
:host(.active) { color: green }
.item { background: red }
:host(.active) .item { background: green;}
`;
var awaitCss = `
.MyID { color: red }
.MyID.active { color: green }
.MyID__item { background: red }
.MyID.active .MyID__item { background: green;}
`;
var html = `
Hello
`;
var awaitHtml = `
Hello
`;
var { template, css } = AutoBem.transform(html, css, {
scopeId: 'MyID'
});
eq_(template, awaitHtml);
eq_(css, awaitCss);
},
'should match descendants of an element' () {
var css = `
.container ul .item { background: green; }
`;
var awaitCss = `
.MyID__tag_ul__item { background: green; }
`;
var html = `
`;
var awaitHtml = `
`;
var { template, css } = AutoBem.transform(html, css, {
scopeId: 'MyID'
});
eq_(template.trim(), awaitHtml.trim());
eq_(css.trim(), awaitCss.trim());
},
'should match children of an element' () {
var css = `
.container .foo > .item { background: green; }
`;
var awaitCss = `
.MyID__foo__child__item { background: green; }
`;
var html = `
`;
var awaitHtml = `
`;
var { template, css } = AutoBem.transform(html, css, {
scopeId: 'MyID'
});
eq_(template.trim(), awaitHtml.trim());
eq_(css.trim(), awaitCss.trim());
},
'should not match any element' () {
var css = `
.myBlock .foo { background: green; }
`;
var awaitCss = `
.MyID__foo { background: green; }
`;
var html = `
`;
var awaitHtml = `
`;
var reporter = sinon.spy();
var { template, css } = AutoBem.transform(html, css, {
scopeId: 'MyID',
reporter: reporter
});
eq_(template.trim(), awaitHtml.trim());
eq_(css.trim(), awaitCss.trim());
eq_(reporter.callCount, 1);
}
})