You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.9 KiB
46 lines
1.9 KiB
4 years ago
|
"use strict";
|
||
|
|
||
|
var _ava = _interopRequireDefault(require("ava"));
|
||
|
|
||
|
var _postcss = _interopRequireDefault(require("postcss"));
|
||
|
|
||
|
var _helpers = require("./util/helpers");
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
var cse = 'CssSyntaxError';
|
||
|
|
||
|
function showCode(t, selector) {
|
||
|
var rule = _postcss.default.parse(selector).first;
|
||
|
|
||
|
try {
|
||
|
(0, _helpers.parse)(rule);
|
||
|
} catch (e) {
|
||
|
if (e.name !== cse) {
|
||
|
return;
|
||
|
} // Removes ANSI codes from snapshot tests as it makes them illegible.
|
||
|
// The formatting of this error is otherwise identical to e.toString()
|
||
|
|
||
|
|
||
|
t.snapshot(cse + ": " + e.message + "\n\n" + e.showSourceCode(false) + "\n");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
(0, _ava.default)('missing open square bracket', showCode, 'a b c] {}');
|
||
|
(0, _ava.default)('missing open parenthesis', showCode, 'a b c) {}');
|
||
|
(0, _ava.default)('missing pseudo class or pseudo element', showCode, 'a b c: {}');
|
||
|
(0, _ava.default)('space in between colon and word (incorrect pseudo)', showCode, 'a b: c {}');
|
||
|
(0, _ava.default)('string after colon (incorrect pseudo)', showCode, 'a b:"wow" {}'); // attribute selectors
|
||
|
|
||
|
(0, _ava.default)('bad string attribute', showCode, '["hello"] {}');
|
||
|
(0, _ava.default)('bad string attribute with value', showCode, '["foo"=bar] {}');
|
||
|
(0, _ava.default)('bad parentheses', showCode, '[foo=(bar)] {}');
|
||
|
(0, _ava.default)('bad lonely asterisk', showCode, '[*] {}');
|
||
|
(0, _ava.default)('bad lonely pipe', showCode, '[|] {}');
|
||
|
(0, _ava.default)('bad lonely caret', showCode, '[^] {}');
|
||
|
(0, _ava.default)('bad lonely dollar', showCode, '[$] {}');
|
||
|
(0, _ava.default)('bad lonely tilde', showCode, '[~] {}');
|
||
|
(0, _ava.default)('bad lonely equals', showCode, '[=] {}');
|
||
|
(0, _ava.default)('bad lonely operator', showCode, '[*=] {}');
|
||
|
(0, _ava.default)('bad lonely operator (2)', showCode, '[|=] {}');
|
||
|
(0, _ava.default)('bad doubled operator', showCode, '[href=foo=bar] {}');
|