mirror of
https://github.com/thangisme/notes.git
synced 2024-11-01 00:37:33 -04:00
101 lines
2.5 KiB
JavaScript
101 lines
2.5 KiB
JavaScript
var fs = require('fs'),
|
|
test = require('tape'),
|
|
through = require('through2'),
|
|
tokenize = require('../')
|
|
|
|
|
|
test('basic', function(t) {
|
|
var tok = tokenize();
|
|
|
|
var input = "html { font-size: 10px; }"
|
|
var expected = [
|
|
['rule_start', 'html {'],
|
|
['rule', ' font-size: 10px; '],
|
|
['rule_end', '}']
|
|
]
|
|
|
|
t.plan(expected.length);
|
|
tok.pipe(through.obj(function(token, enc, next) {
|
|
token[1] = token[1].toString();
|
|
if (expected.length > 0) t.same(token, expected.shift())
|
|
next();
|
|
}))
|
|
|
|
tok.end(input);
|
|
})
|
|
|
|
test('at-rule nesting', function(t) {
|
|
var tok = tokenize();
|
|
var expected = [
|
|
[ 'atrule_start', '@media screen and (min-width: 1000px) {' ],
|
|
[ 'atrule', '\n ' ],
|
|
[ 'rule_start', 'a {' ],
|
|
[ 'rule', '\n text-decoration: underline;\n ' ],
|
|
[ 'rule_end', '}' ],
|
|
[ 'atrule', '\n' ],
|
|
[ 'atrule_end', '}' ],
|
|
[ 'root', '\n' ]
|
|
]
|
|
|
|
t.plan(expected.length);
|
|
tok.pipe(through.obj(function(token, enc, next) {
|
|
token[1] = token[1].toString();
|
|
if (expected.length > 0) t.same(token, expected.shift())
|
|
next();
|
|
}))
|
|
|
|
fs.createReadStream(__dirname + '/nested.css').pipe(tok);
|
|
})
|
|
|
|
test('gauntlet', function(t) {
|
|
var tok = tokenize();
|
|
|
|
var expected = [
|
|
['root', '\n'],
|
|
['rule_start', 'div {'],
|
|
['rule', '\n background: red;\n'],
|
|
['rule_end', '}'],
|
|
['root', '\n\n'],
|
|
['rule_start', '.cls {'],
|
|
['rule', '\n color: green;\n'],
|
|
['rule_end', '}'],
|
|
['root', '\n\n'],
|
|
['rule_start', '#id {'],
|
|
['rule', '\n font-size: 10px;\n'],
|
|
['rule_end', '}'],
|
|
['comment', '\n\n/* comment */'],
|
|
['space', '\n\n'],
|
|
['atrule_start', '@media screen and (min-width: 1000px) {'],
|
|
['atrule', '\n '],
|
|
['rule_start', 'a {'],
|
|
['rule', '\n text-decoration: underline;\n '],
|
|
['rule_end', '}'],
|
|
['atrule', '\n'],
|
|
['atrule_end', '}'],
|
|
['root', '\n\n'],
|
|
['rule_start', 'a:hover {'],
|
|
['rule', '\n font-weight: bold; \n'],
|
|
['rule_end', '}'],
|
|
['root', '\n\n'],
|
|
['rule_start', 'section \n\n\n{'],
|
|
['rule', '\n margin: 0;\n '],
|
|
['comment', '/* comment wthin a rule */'],
|
|
['rule', '\n padding: 5px;\n'],
|
|
['rule_end', '}'],
|
|
['root', '\n\n\n'],
|
|
['rule_start', 'body > * {'],
|
|
['rule', '\n \n'],
|
|
['rule_end', '}'],
|
|
['root', '\n']
|
|
]
|
|
|
|
t.plan(expected.length);
|
|
tok.pipe(through.obj(function(token, enc, next) {
|
|
token[1] = token[1].toString();
|
|
if (expected.length > 0) t.same(token, expected.shift())
|
|
next();
|
|
}));
|
|
|
|
fs.createReadStream(__dirname + '/gauntlet.css').pipe(tok);
|
|
})
|