Merge pull request #222 from Keats/filename

Add tests for sass+scss syntax
This commit is contained in:
Sam Richard 2015-03-31 18:20:29 -04:00
commit 700ca8ddd9
6 changed files with 66 additions and 3 deletions

2
test/expected/indent.css Normal file
View file

@ -0,0 +1,2 @@
body .div {
color: blue; }

View file

@ -1,6 +1,9 @@
body { body {
background: pink; } background: pink; }
footer {
background: red; }
.error, .badError { .error, .badError {
border: #f00; border: #f00;
background: #fdd; } background: #fdd; }

View file

@ -5,7 +5,6 @@ var gutil = require('gulp-util');
var path = require('path'); var path = require('path');
var fs = require('fs'); var fs = require('fs');
var sass = require('../index'); var sass = require('../index');
var assert = require('assert');
var createVinyl = function createVinyl(filename, contents) { var createVinyl = function createVinyl(filename, contents) {
var base = path.join(__dirname, 'scss'); var base = path.join(__dirname, 'scss');
@ -131,6 +130,7 @@ describe('gulp-sass -- async compile', function() {
// Expected sources are relative to file.base // Expected sources are relative to file.base
var expectedSources = [ var expectedSources = [
'includes/_cats.scss', 'includes/_cats.scss',
'includes/_dogs.sass',
'inheritance.scss' 'inheritance.scss'
]; ];
@ -148,11 +148,58 @@ describe('gulp-sass -- async compile', function() {
stream = sass(); stream = sass();
stream.on('data', function(cssFile) { stream.on('data', function(cssFile) {
should.exist(cssFile.sourceMap); should.exist(cssFile.sourceMap);
assert.deepEqual(cssFile.sourceMap.sources, expectedSources); cssFile.sourceMap.sources.should.eql(expectedSources);
done(); done();
}); });
stream.write(sassFile); 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() { describe('gulp-sass -- sync compile', function() {
@ -267,6 +314,7 @@ describe('gulp-sass -- sync compile', function() {
// Expected sources are relative to file.base // Expected sources are relative to file.base
var expectedSources = [ var expectedSources = [
'includes/_cats.scss', 'includes/_cats.scss',
'includes/_dogs.sass',
'inheritance.scss' 'inheritance.scss'
]; ];
@ -284,7 +332,7 @@ describe('gulp-sass -- sync compile', function() {
stream = sass.sync(); stream = sass.sync();
stream.on('data', function(cssFile) { stream.on('data', function(cssFile) {
should.exist(cssFile.sourceMap); should.exist(cssFile.sourceMap);
assert.deepEqual(cssFile.sourceMap.sources, expectedSources); cssFile.sourceMap.sources.should.eql(expectedSources);
done(); done();
}); });
stream.write(sassFile); stream.write(sassFile);

View file

@ -0,0 +1,5 @@
$blue: #3bbfce;
$margin: 16px;
footer
background: red;

4
test/scss/indent.sass Normal file
View file

@ -0,0 +1,4 @@
$color: blue
body .div
color: $color

View file

@ -1,4 +1,5 @@
@import "includes/cats"; @import "includes/cats";
@import "includes/dogs";
.error { .error {
border: #f00; border: #f00;