From 9c0e76fc8b208a747cdac1731609b74981cf9dac Mon Sep 17 00:00:00 2001 From: Vincent Prouillet Date: Tue, 24 Mar 2015 22:36:26 +0000 Subject: [PATCH 1/4] Add tests for sass+scss syntax --- test/expected/indent.css | 3 +++ test/main.js | 47 ++++++++++++++++++++++++++++++++++++++++ test/scss/indent.sass | 3 +++ 3 files changed, 53 insertions(+) create mode 100644 test/expected/indent.css create mode 100644 test/scss/indent.sass diff --git a/test/expected/indent.css b/test/expected/indent.css new file mode 100644 index 0000000..14b8030 --- /dev/null +++ b/test/expected/indent.css @@ -0,0 +1,3 @@ +#main { + color: blue; + font-size: 0.3em; } diff --git a/test/main.js b/test/main.js index ebec4e1..15914f3 100644 --- a/test/main.js +++ b/test/main.js @@ -153,6 +153,53 @@ describe('gulp-sass -- async compile', function() { }); stream.write(sassFile); }); + + it('should compile a single indented sass file', function(done) { + var sassFile = createVinyl('indent.sass'); + var stream = sass(); + stream.on('data', function(cssFile) { + should.exist(cssFile); + should.exist(cssFile.path); + should.exist(cssFile.relative); + should.exist(cssFile.contents); + String(cssFile.contents).should.equal( + fs.readFileSync(path.join(__dirname, 'expected/indent.css'), 'utf8') + ); + done(); + }); + stream.write(sassFile); + }); + + it('should parse files in sass and scss', function(done) { + var files = [ + createVinyl('mixins.scss'), + createVinyl('indent.sass') + ]; + var stream = sass(); + var mustSee = files.length; + var expectedPath = 'expected/mixins.css'; + + stream.on('data', function(cssFile) { + should.exist(cssFile); + should.exist(cssFile.path); + should.exist(cssFile.relative); + should.exist(cssFile.contents); + if (cssFile.path.indexOf('indent') !== -1) { + expectedPath = 'expected/indent.css'; + } + String(cssFile.contents).should.equal( + fs.readFileSync(path.join(__dirname, expectedPath), 'utf8') + ); + mustSee--; + if (mustSee <= 0) { + done(); + } + }); + + files.forEach(function (file) { + stream.write(file); + }); + }); }); describe('gulp-sass -- sync compile', function() { diff --git a/test/scss/indent.sass b/test/scss/indent.sass new file mode 100644 index 0000000..e854b5c --- /dev/null +++ b/test/scss/indent.sass @@ -0,0 +1,3 @@ +#main + color: blue + font-size: 0.3em From 25ee16f9d633f9c4e609d7cde82db67c3ef72054 Mon Sep 17 00:00:00 2001 From: Vincent Prouillet Date: Wed, 25 Mar 2015 19:41:22 +0000 Subject: [PATCH 2/4] Replace indent.sass to match an existing issue https://github.com/dlmanning/gulp-sass/issues/187 was failing on 1.x --- test/expected/indent.css | 5 ++--- test/scss/indent.sass | 7 ++++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/expected/indent.css b/test/expected/indent.css index 14b8030..39efa47 100644 --- a/test/expected/indent.css +++ b/test/expected/indent.css @@ -1,3 +1,2 @@ -#main { - color: blue; - font-size: 0.3em; } +body .div { + color: blue; } diff --git a/test/scss/indent.sass b/test/scss/indent.sass index e854b5c..1c72199 100644 --- a/test/scss/indent.sass +++ b/test/scss/indent.sass @@ -1,3 +1,4 @@ -#main - color: blue - font-size: 0.3em +$color: blue + +body .div + color: $color From de6af93958d17e825d7cf9dd6b10864aa06b0ddb Mon Sep 17 00:00:00 2001 From: Vincent Prouillet Date: Wed, 25 Mar 2015 19:49:52 +0000 Subject: [PATCH 3/4] Add a sass file to the inheritance test --- test/expected/inheritance.css | 3 +++ test/main.js | 4 ++-- test/scss/includes/_dogs.sass | 5 +++++ test/scss/inheritance.scss | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 test/scss/includes/_dogs.sass diff --git a/test/expected/inheritance.css b/test/expected/inheritance.css index d2c002a..62fc9a3 100644 --- a/test/expected/inheritance.css +++ b/test/expected/inheritance.css @@ -1,6 +1,9 @@ body { background: pink; } +footer { + background: red; } + .error, .badError { border: #f00; background: #fdd; } diff --git a/test/main.js b/test/main.js index 15914f3..c187d89 100644 --- a/test/main.js +++ b/test/main.js @@ -5,7 +5,6 @@ var gutil = require('gulp-util'); var path = require('path'); var fs = require('fs'); var sass = require('../index'); -var assert = require('assert'); var createVinyl = function createVinyl(filename, contents) { var base = path.join(__dirname, 'scss'); @@ -131,6 +130,7 @@ describe('gulp-sass -- async compile', function() { // Expected sources are relative to file.base var expectedSources = [ 'includes/_cats.scss', + 'includes/_dogs.sass', 'inheritance.scss' ]; @@ -148,7 +148,7 @@ describe('gulp-sass -- async compile', function() { stream = sass(); stream.on('data', function(cssFile) { should.exist(cssFile.sourceMap); - assert.deepEqual(cssFile.sourceMap.sources, expectedSources); + cssFile.sourceMap.sources.should.eql(expectedSources); done(); }); stream.write(sassFile); diff --git a/test/scss/includes/_dogs.sass b/test/scss/includes/_dogs.sass new file mode 100644 index 0000000..fbdee6e --- /dev/null +++ b/test/scss/includes/_dogs.sass @@ -0,0 +1,5 @@ +$blue: #3bbfce; +$margin: 16px; + +footer + background: red; diff --git a/test/scss/inheritance.scss b/test/scss/inheritance.scss index f42ec79..b2cab38 100644 --- a/test/scss/inheritance.scss +++ b/test/scss/inheritance.scss @@ -1,4 +1,5 @@ @import "includes/cats"; +@import "includes/dogs"; .error { border: #f00; From 5c7777fda931d8eb5711e698b52d1080834fe62a Mon Sep 17 00:00:00 2001 From: Vincent Prouillet Date: Tue, 31 Mar 2015 15:44:22 +0100 Subject: [PATCH 4/4] Rebase on top of 2.x --- test/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/main.js b/test/main.js index c187d89..8dc6522 100644 --- a/test/main.js +++ b/test/main.js @@ -314,6 +314,7 @@ describe('gulp-sass -- sync compile', function() { // Expected sources are relative to file.base var expectedSources = [ 'includes/_cats.scss', + 'includes/_dogs.sass', 'inheritance.scss' ]; @@ -331,7 +332,7 @@ describe('gulp-sass -- sync compile', function() { stream = sass.sync(); stream.on('data', function(cssFile) { should.exist(cssFile.sourceMap); - assert.deepEqual(cssFile.sourceMap.sources, expectedSources); + cssFile.sourceMap.sources.should.eql(expectedSources); done(); }); stream.write(sassFile);