diff --git a/package.json b/package.json index 2d2fcad..b42a0e3 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "devDependencies": { "autoprefixer-core": "^5.1.11", "eslint": "^0.17.1", + "globule": "^0.2.0", "gulp": "^3.8.11", "gulp-postcss": "^5.1.6", "gulp-sourcemaps": "^1.5.2", diff --git a/test/main.js b/test/main.js index 5fe1a7b..5411621 100644 --- a/test/main.js +++ b/test/main.js @@ -10,6 +10,7 @@ var sourcemaps = require('gulp-sourcemaps'); var postcss = require('gulp-postcss'); var autoprefixer = require('autoprefixer-core'); var tap = require('gulp-tap'); +var globule = require('globule'); var createVinyl = function createVinyl(filename, contents) { var base = path.join(__dirname, 'scss'); @@ -415,6 +416,26 @@ describe('gulp-sass -- sync compile', function() { .on('end', done); }); + it('should work with gulp-sourcemaps and a globbed source', function(done) { + var files, filesContent, actualContent, expectedContent, globPath; + files = globule.find(path.join(__dirname, '/scss/globbed/**/*.scss')); + filesContent = {}; + files.forEach(function(file) { + globPath = file.replace(path.join(__dirname, '/scss/globbed/'), ''); + filesContent[globPath] = fs.readFileSync(file, 'utf8'); + }); + gulp.src(path.join(__dirname, '/scss/globbed/**/*.scss')) + .pipe(sourcemaps.init()) + .pipe(sass.sync()) + .pipe(tap(function(file) { + should.exist(file.sourceMap); + actualContent = file.sourceMap.sourcesContent[0]; + expectedContent = filesContent[file.sourceMap.sources[0]]; + actualContent.should.eql(expectedContent); + })) + .on('end', done); + }); + it('should work with gulp-sourcemaps and autoprefixer with different file.base', function(done) { var expectedSources = [ 'includes/_cats.scss', diff --git a/test/scss/globbed/app.scss b/test/scss/globbed/app.scss new file mode 100644 index 0000000..036b9a6 --- /dev/null +++ b/test/scss/globbed/app.scss @@ -0,0 +1,15 @@ +p { + border: 1px solid red; +} + +small { + font: { + size: 72px; + } +} + +h1 { + font: { + size: 8px; + } +} diff --git a/test/scss/globbed/foo/bar.scss b/test/scss/globbed/foo/bar.scss new file mode 100644 index 0000000..f0e370f --- /dev/null +++ b/test/scss/globbed/foo/bar.scss @@ -0,0 +1,4 @@ +h1, h2, h3, h4, h5 { + color: green; + font-weight: 800; +}