// sass-lint:disable class-name-format force-element-nesting force-pseudo-nesting mixins-before-declarations @use 'true' as *; @use '../../src/bem'; // // Included test cases: // - /// 1 /// - without namespace // - /// 2 /// - with namespace // - /// 3 /// - nested // - /// 4 /// - within selector // @include it('block') { @include assert('without namespace') { /// 1 /// @include output(false) { @include bem.block('something') { font-size: 1em; } } @include expect(false) { .something { font-size: 1em; } } } @each $ns in map-keys(bem.$namespaces) { @include assert('with namespace "#{$ns}"') { /// 2 /// @include output(false) { @include bem.block('something', $ns) { font-size: 1em; } } @include expect(false) { @if $ns != 'theme' { .#{map-get(bem.$namespaces, $ns)}-something { font-size: 1em; } } @else { .t-something, [class*=' t-'] .t-something, [class^='t-'] .t-something { font-size: 1em; } } } } } @include assert('nested') { /// 3 /// @include output(false) { @include bem.theme('theme') { @include bem.theme('subtheme') { @include bem.block('something') { font-size: 2em; } } } } @include expect(false) { .t-theme .t-subtheme .something, [class*=' t-'] .t-theme .t-subtheme .something, [class^='t-'] .t-theme .t-subtheme .something { font-size: 2em; } } } @include assert('within selector') { /// 4 /// @include output(false) { .sel { @include bem.block('something') { font-size: 2em; } } } @include expect(false) { .sel .something { font-size: 2em; } } } }