UNPKG

postcss-conditionals-renewed

Version:

PostCSS plugin that enables @if statements in your CSS

190 lines (97 loc) 9.06 kB
'use strict'; var _ava = require('ava'); var _ava2 = _interopRequireDefault(_ava); var _postcss = require('postcss'); var _postcss2 = _interopRequireDefault(_postcss); var _ = require('..'); var _2 = _interopRequireDefault(_); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function testFixture(t, fixture) { var expected = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; if (expected === null) expected = fixture; var out = (0, _postcss2.default)(_2.default).process(fixture); t.deepEqual(out.css, expected); } (0, _ava2.default)('equality (1)', testFixture, '@if a == a { success {} }', ' success {}'); (0, _ava2.default)('equality (2)', testFixture, '@if a == b { success {} }', ''); (0, _ava2.default)('equality (3)', testFixture, '@if a != b { success {} }', ' success {}'); (0, _ava2.default)('equality (4)', testFixture, '@if a == b { success {} } @else { branch {} }', 'branch {}'); (0, _ava2.default)('equality (5)', testFixture, '@if a != a { success {} }', ''); (0, _ava2.default)('equality (6)', testFixture, '@if a != 0 { success {} }', ' success {}'); (0, _ava2.default)('equality (7)', testFixture, '@if a == 0 { success {} }', ''); (0, _ava2.default)('comparisons (1)', testFixture, '@if 2 > 1 { success {} }', ' success {}'); (0, _ava2.default)('comparisons (2)', testFixture, '@if 1 > 2 { success {} }', ''); (0, _ava2.default)('comparisons (3)', testFixture, '@if 2 >= 2 { success {} }', ' success {}'); (0, _ava2.default)('comparisons (4)', testFixture, '@if 1 >= 2 { success {} }', ''); (0, _ava2.default)('comparisons (5)', testFixture, '@if 1 < 2 { success {} }', ' success {}'); (0, _ava2.default)('comparisons (6)', testFixture, '@if 2 < 1 { success {} }', ''); (0, _ava2.default)('comparisons (7)', testFixture, '@if 2 <= 2 { success {} }', ' success {}'); (0, _ava2.default)('comparisons (8)', testFixture, '@if 2 <= 1 { success {} }', ''); (0, _ava2.default)('complex expressions (1)', testFixture, '@if a == a AND b == b { success {} }', ' success {}'); (0, _ava2.default)('complex expressions (2)', testFixture, '@if a == a AND a == b { success {} }', ''); (0, _ava2.default)('complex expressions (3)', testFixture, '@if a == b OR b == b { success {} }', ' success {}'); (0, _ava2.default)('complex expressions (4)', testFixture, '@if a == b OR b == c { success {} }', ''); (0, _ava2.default)('complex expressions (5)', testFixture, '@if a == b OR b == c { success {} }', ''); (0, _ava2.default)('complex expressions (6)', testFixture, '@if a == a OR (c == b AND b == d) { success {} }', ' success {}'); (0, _ava2.default)('unaries', testFixture, '@if NOT (a == b) { success {} }', ' success {}'); (0, _ava2.default)('addition (1)', testFixture, '@if 1 + 1 == 2 { success {} }', ' success {}'); (0, _ava2.default)('addition (2)', testFixture, '@if (1 + 2) + 3 == 6 { success {} }', ' success {}'); (0, _ava2.default)('addition (3)', testFixture, '@if (1 + 2) + 3 == 7 { success {} }', ''); (0, _ava2.default)('addition (4)', testFixture, '@if 1px + 2 == 3px { success {} }', ' success {}'); (0, _ava2.default)('addition (5)', testFixture, '@if 1 + 1px == 2px { success {} }', ' success {}'); (0, _ava2.default)('addition (6)', testFixture, '@if (3 + 2) + 1 == 3 { success {} }', ''); (0, _ava2.default)('substraction (1)', testFixture, '@if 3 - 2 == 1 { success {} }', ' success {}'); (0, _ava2.default)('substraction (2)', testFixture, '@if 3px - 2px == 1px { success {} }', ' success {}'); (0, _ava2.default)('substraction (3)', testFixture, '@if 2 - 1px == 1px { success {} }', ' success {}'); (0, _ava2.default)('addition and substraction', testFixture, '@if (3 - 2) + 1 == 2 { success {} }', ' success {}'); (0, _ava2.default)('multiplication (1)', testFixture, '@if 1 * 2 == 2 { success {} }', ' success {}'); (0, _ava2.default)('multiplication (2)', testFixture, '@if (1 * 2) * 3 == 6 { success {} }', ' success {}'); (0, _ava2.default)('multiplication (3)', testFixture, '@if (1 * 2) * 3 == 7 { success {} }', ''); (0, _ava2.default)('multiplication (4)', testFixture, '@if 3px * 2px == 6px { success {} }', ' success {}'); (0, _ava2.default)('multiplication (5)', testFixture, '@if 2 * 2px == 4px { success {} }', ' success {}'); (0, _ava2.default)('division (1)', testFixture, '@if 2 / 2 == 1 { success {} }', ' success {}'); (0, _ava2.default)('division (2)', testFixture, '@if (4 / 2) / 2 == 1 { success {} }', ' success {}'); (0, _ava2.default)('division (3)', testFixture, '@if 4 / (2 / 2) == 1 { success {} }', ''); (0, _ava2.default)('division (4)', testFixture, '@if (4 / 2) * 2 == 2 { success {} }', ''); (0, _ava2.default)('division (5)', testFixture, '@if 4px / 2px == 2px { success {} }', ' success {}'); (0, _ava2.default)('division (6)', testFixture, '@if 4 / 2px == 2px { success {} }', ' success {}'); (0, _ava2.default)('colors (1)', testFixture, '@if aqua - blue == lime { success {} }', ' success {}'); (0, _ava2.default)('colors (2)', testFixture, '@if lime + rgb(0, 0, 255) == #00ffff { success {} }', ' success {}'); (0, _ava2.default)('colors (3)', testFixture, '@if #0ff == #00ffff { success {} }', ' success {}'); (0, _ava2.default)('colors (4)', testFixture, '@if #0ff == #00ffffff { success {} }', ' success {}'); (0, _ava2.default)('colors (5)', testFixture, '@if #0fff == #00ffff { success {} }', ' success {}'); (0, _ava2.default)('colors (6)', testFixture, '@if #0fff == #00ffffff { success {} }', ' success {}'); (0, _ava2.default)('colors (7)', testFixture, '@if hsl(0, 0%, 100%) == white { success {} }', ' success {}'); (0, _ava2.default)('colors (8)', testFixture, '@if hsla(0, 0%, 100%, .5) == white { success {} }', ''); (0, _ava2.default)('colors (9)', testFixture, '@if rgb(0, 255, 255) == aqua { success {} }', ' success {}'); (0, _ava2.default)('colors (10)', testFixture, '@if rgba(0, 255, 255, .5) == aqua { success {} }', ''); (0, _ava2.default)('colors (11)', testFixture, '@if rgb(0, 255, 255) == rgb(0, 100%, 100%) { success {} }', ''); (0, _ava2.default)('colors (12)', testFixture, '@if rgba(0, 100%, 100%, 1) == rgb(0, 100%, 100%) { success {} }', ' success {}'); (0, _ava2.default)('nesting (1)', testFixture, '@if a == a { @if b == b { success {} } }', ' success {}'); (0, _ava2.default)('nesting (2)', testFixture, '@if a == a { @if b != b { success {} } @else { branch {} } }', ' branch {}'); (0, _ava2.default)('nesting (3)', testFixture, '@if a != a { @if b == b { success {} } }', ''); (0, _ava2.default)('nesting (4)', testFixture, '@if a == a { @if b != b { success {} } }', ''); (0, _ava2.default)('nesting (5)', testFixture, '@if a == a { @if b == b { @if c==c { success {} } } }', ' success {}'); (0, _ava2.default)('booleans (1)', testFixture, '@if true { success {} }', ' success {}'); (0, _ava2.default)('booleans (2)', testFixture, '@if false { success {} }', ''); (0, _ava2.default)('booleans (3)', testFixture, '@if true AND true { success {} }', ' success {}'); (0, _ava2.default)('booleans (4)', testFixture, '@if true OR true { success {} }', ' success {}'); (0, _ava2.default)('booleans (5)', testFixture, '@if true OR false { success {} }', ' success {}'); (0, _ava2.default)('booleans (6)', testFixture, '@if false OR true { success {} }', ' success {}'); (0, _ava2.default)('booleans (7)', testFixture, '@if false AND false { success {} }', ''); (0, _ava2.default)('booleans (8)', testFixture, '@if false OR false { success {} }', ''); (0, _ava2.default)('booleans (9)', testFixture, '@if true == true { success {} }', ' success {}'); (0, _ava2.default)('booleans (10)', testFixture, '@if true == false { success {} }', ''); (0, _ava2.default)('booleans (11)', testFixture, '@if true != false { success {} }', ' success {}'); (0, _ava2.default)('booleans (12)', testFixture, '@if true { foo: bar } @else if false { bar: baz } @else { bat: quux }', ' foo: bar'); (0, _ava2.default)('booleans (13)', testFixture, '@if false { foo: bar } @else if true { bar: baz } @else { bat: quux }', 'bar: baz'); (0, _ava2.default)('booleans (14)', testFixture, '@if false { foo: bar } @else if false { bar: baz } @else { bat: quux }', 'bat: quux'); (0, _ava2.default)('booleans (15)', testFixture, '@if 1 { success {} }', ' success {}'); (0, _ava2.default)('booleans (16)', testFixture, '@if 0 { success {} }', ''); (0, _ava2.default)('strings (1)', testFixture, '@if \'\' == \'\' { foo: bar }', ' foo: bar'); (0, _ava2.default)('strings (2)', testFixture, '@if "" == "" { foo: bar }', ' foo: bar'); (0, _ava2.default)('strings (3)', testFixture, '@if \'\' == "" { foo: bar }', ' foo: bar'); (0, _ava2.default)('strings (4)', testFixture, '@if "" == \'\' { foo: bar }', ' foo: bar'); (0, _ava2.default)('strings (5)', testFixture, '@if \'foo\\bar\' == \'foo\\bar\' { foo: bar }', ' foo: bar'); (0, _ava2.default)('strings (6)', testFixture, '@if .foo == .foo { foo: bar }', ' foo: bar'); (0, _ava2.default)('strings (7)', testFixture, '@if .foo == .bar { foo: bar }', '');