You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
243 lines
6.2 KiB
243 lines
6.2 KiB
process.env.NODESASS_COV ? require('../lib-cov') : require('../lib'); |
|
|
|
var assert = require('assert').strict, |
|
sass = require('../lib/extensions'), |
|
binding = require(sass.getBinaryPath()); |
|
|
|
describe('lowlevel', function() { |
|
it('fail with options not an object', function(done) { |
|
var options = 2; |
|
assert.throws(function() { |
|
binding.renderSync(options); |
|
}, /"result" element is not an object/); |
|
done(); |
|
}); |
|
|
|
it('data context with options.data not provided', function(done) { |
|
var options = { |
|
/* data: */ |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderSync(options); |
|
assert(/Data context created without a source string/.test(options.result.error), |
|
'Should fail with error message "Data context created without a source string"'); |
|
done(); |
|
}); |
|
|
|
it('data context with both options.data and options.file not provided', function(done) { |
|
var options = { |
|
/* data: */ |
|
sourceComments: false, |
|
/* file: null, */ |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderSync(options); |
|
assert(/Data context created without a source string/.test(options.result.error), |
|
'Should fail with error message "Data context created without a source string"'); |
|
done(); |
|
}); |
|
|
|
it('file context with both options.data and options.file not provided', function(done) { |
|
var options = { |
|
/* data: */ |
|
sourceComments: false, |
|
/* file: null, */ |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderFileSync(options); |
|
assert(/File context created without an input path/.test(options.result.error), |
|
'Should fail with error message "File context created without an input path"'); |
|
done(); |
|
}); |
|
|
|
it('file context with options.file not provided, options.data given', function(done) { |
|
var options = { |
|
data: 'div { width: 10px; } ', |
|
sourceComments: false, |
|
/* file: null, */ |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderFileSync(options); |
|
assert(/File context created without an input path/.test(options.result.error), |
|
'Should fail with error message "File context created without an input path"'); |
|
done(); |
|
}); |
|
|
|
it('fail with options.result not provided', function(done) { |
|
var options = { data: 'div { width: 10px; } ', |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n' }; |
|
|
|
assert.throws(function() { |
|
binding.renderSync(options); |
|
}, /"result" element is not an object/); |
|
done(); |
|
}); |
|
|
|
|
|
it('fail with options.result not an object', function(done) { |
|
var options = { data: 'div { width: 10px; } ', |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: 2 }; |
|
|
|
assert.throws(function() { |
|
binding.renderSync(options); |
|
}, /"result" element is not an object/); |
|
done(); |
|
}); |
|
|
|
|
|
it('fail with options.result.stats not provided', function(done) { |
|
|
|
var options = { data: 'div { width: 10px; } ', |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: {} }; |
|
|
|
assert.throws(function() { |
|
binding.renderSync(options); |
|
}, /"result.stats" element is not an object/); |
|
done(); |
|
}); |
|
|
|
it('fail with options.result.stats not an object', function(done) { |
|
|
|
var options = { data: 'div { width: 10px; } ', |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
indentWidth: 2, |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: 2 } }; |
|
|
|
assert.throws(function() { |
|
binding.renderSync(options); |
|
}, /"result.stats" element is not an object/); |
|
done(); |
|
}); |
|
|
|
it('options.indentWidth not provided', function(done) { |
|
var options = { data: 'div { width: 10px; }', |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
/* indentWidth */ |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderSync(options); |
|
assert(options.result.css); |
|
done(); |
|
}); |
|
|
|
it('empty data string', function(done) { |
|
var options = { data: '', |
|
sourceComments: false, |
|
file: null, |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
/* indentWidth */ |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderSync(options); |
|
assert(/empty source string/.test(options.result.error), |
|
'Should fail with error message "Data context created with empty source string"'); |
|
done(); |
|
}); |
|
|
|
|
|
it('empty file string', function(done) { |
|
var options = { |
|
sourceComments: false, |
|
file: '', |
|
outFile: null, |
|
includePaths: '', |
|
precision: 5, |
|
sourceMap: null, |
|
style: 0, |
|
/* indentWidth */ |
|
indentType: 0, |
|
linefeed: '\n', |
|
result: { stats: {} } }; |
|
|
|
binding.renderFileSync(options); |
|
assert(/empty input path/.test(options.result.error), |
|
'Should fail with error message "File context created with empty input path"'); |
|
done(); |
|
}); |
|
|
|
}); // lowlevel
|
|
|