You've already forked sass-spritemaker
Hello, sass-spritemaker!
This commit is contained in:
8
test/.eslintrc.json
Normal file
8
test/.eslintrc.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"mocha": true
|
||||
},
|
||||
"plugins": ["mocha"]
|
||||
}
|
||||
64
test/spritemaker.spec.js
Normal file
64
test/spritemaker.spec.js
Normal file
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* Copyright (c) 2019-present Tomek Wójcik <contact@bthlabs.pl>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
const {expect} = require('chai');
|
||||
|
||||
const {spritemaker} = require('../lib/spritemaker');
|
||||
|
||||
const {rmtree} = require('./utils');
|
||||
|
||||
const ICONS_PATH = path.resolve(__dirname, '..', 'example', 'icons', '*.png');
|
||||
const OUTPUT_NAME = 'sprite-4744971b12c28832638cc954dd787fa5';
|
||||
|
||||
describe('spritemaker', () => {
|
||||
let outputDir = null;
|
||||
let defaultOptions = null;
|
||||
|
||||
beforeEach(() => {
|
||||
outputDir = fs.mkdtempSync('tmp_spritemaker');
|
||||
defaultOptions = {
|
||||
files: [ICONS_PATH],
|
||||
output: outputDir
|
||||
};
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
rmtree(outputDir);
|
||||
});
|
||||
|
||||
it('should generate the sprite image', () => {
|
||||
spritemaker(defaultOptions);
|
||||
|
||||
const spritePath = path.join(outputDir, `${OUTPUT_NAME}.png`);
|
||||
expect(fs.existsSync(spritePath)).to.equal(true);
|
||||
});
|
||||
|
||||
it('should generate the SCSS files', () => {
|
||||
spritemaker(defaultOptions);
|
||||
|
||||
const scssPath = path.join(outputDir, `${OUTPUT_NAME}.scss`);
|
||||
expect(fs.existsSync(scssPath)).to.equal(true);
|
||||
});
|
||||
});
|
||||
42
test/utils.js
Normal file
42
test/utils.js
Normal file
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Copyright (c) 2019-present Tomek Wójcik <contact@bthlabs.pl>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const _path = require('path');
|
||||
|
||||
const rmtree = module.exports.rmtree = (path) => {
|
||||
if (!fs.existsSync(path)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var files = fs.readdirSync(path);
|
||||
files.forEach((file) => {
|
||||
var filePath = _path.join(path, file);
|
||||
if (fs.statSync(filePath).isDirectory()) {
|
||||
rmtree(filePath);
|
||||
} else {
|
||||
fs.unlinkSync(filePath);
|
||||
}
|
||||
});
|
||||
|
||||
fs.rmdirSync(path);
|
||||
};
|
||||
Reference in New Issue
Block a user