@fidian/metalsmith-less
Version:
A LESS plugin for Metalsmith
100 lines (91 loc) • 2.86 kB
JavaScript
var assertDir = require("assert-dir-equal");
var less = require("../");
var Metalsmith = require("metalsmith");
function checkDirFactory(done, actual, expected) {
return (err) => {
if (err) return done(err);
try {
assertDir(actual, expected);
} catch (err) {
console.log("err", err);
return done(err);
}
return done(null);
};
}
describe("the plugin", function () {
it("should convert less to css", function (done) {
new Metalsmith("test/fixtures/basic")
.use(less())
.build(
checkDirFactory(
done,
"test/fixtures/basic/build",
"test/fixtures/basic/expected"
)
);
});
it("should convert imported files", function (done) {
new Metalsmith("test/fixtures/import")
.use(
less({
pattern: "less/index.less",
render: {
paths: ["test/fixtures/import/src/less"]
}
})
)
.build(
checkDirFactory(
done,
"test/fixtures/import/build",
"test/fixtures/import/expected"
)
);
});
it("should create source map", function (done) {
new Metalsmith("test/fixtures/source-map")
.use(
less({
pattern: ["less/entry-1.less", "less/entry-2.less"],
render: {
paths: ["test/fixtures/source-map/src/less"]
},
useDynamicSourceMap: true
})
)
.build(
checkDirFactory(
done,
"test/fixtures/source-map/build",
"test/fixtures/source-map/expected"
)
);
});
it("preserves source files by default", function (done) {
new Metalsmith("test/fixtures/preserve-source")
.use(less())
.build(
checkDirFactory(
done,
"test/fixtures/preserve-source/build",
"test/fixtures/preserve-source/expected"
)
);
});
it("removes source files", function (done) {
new Metalsmith("test/fixtures/remove-source")
.use(
less({
removeSource: true
})
)
.build(
checkDirFactory(
done,
"test/fixtures/remove-source/build",
"test/fixtures/remove-source/expected"
)
);
});
});