UNPKG

2.26 kBJavaScriptView Raw
1var lessGlob = require('../'),
2 less = require('less'),
3 fs = require('fs'),
4 expect = require('chai').expect;
5
6function readResource(filename) {
7 return fs.readFileSync(filename, 'utf-8');
8}
9
10function assertFilesToBeIncluded(output, files) {
11 var pattern = "file:([\\w\\.\\-]+)",
12 includes = output.match(new RegExp(pattern, 'g'));
13 includes.forEach(function(include) {
14 include = new RegExp(pattern).exec(include)[1];
15 expect(files).to.contain(include);
16 files.splice(files.indexOf(include), 1);
17 });
18 expect(files).to.have.length(0, 'all includes should be found');
19}
20
21var options = {
22 paths: ['test/fixtures'],
23 plugins: [lessGlob]
24 };
25
26describe('less-glob', function() {
27 it('should import files by glob', function(done) {
28 less.render(readResource('test/fixtures/all-less.less'), options)
29 .then(function(output) {
30 assertFilesToBeIncluded(output.css, [
31 'one.less',
32 'one-sub.less'
33 ]);
34 })
35 .then(done, done);
36 });
37
38 it('should ignore non-less files', function(done) {
39 less.render(readResource('test/fixtures/include-non-less.less'), options)
40 .then(function(output) {
41 assertFilesToBeIncluded(output.css, [
42 'two.less'
43 ]);
44 expect(output.css).to.not.contain('file:resource.txt');
45 })
46 .then(done, done);
47 });
48
49 it('should not break standard imports', function(done) {
50 less.render(readResource('test/fixtures/no-glob.less'), options)
51 .then(function(output) {
52 assertFilesToBeIncluded(output.css, [
53 'one.less'
54 ]);
55 })
56 .then(done, done);
57 });
58
59 it('should recursively resolve globs', function(done) {
60 less.render(readResource('test/fixtures/recursive.less'), options)
61 .then(function(output) {
62 assertFilesToBeIncluded(output.css, [
63 'three.less',
64 'three-sub.less',
65 'three-sub2.less'
66 ]);
67 })
68 .then(done, done);
69 });
70});
\No newline at end of file