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 {
background: pink; }
footer {
background: red; }
.error, .badError {
border: #f00;
background: #fdd; }

View file

@ -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,11 +148,58 @@ 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);
});
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() {
@ -267,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'
];
@ -284,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);

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/dogs";
.error {
border: #f00;