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.
55 lines
1.3 KiB
55 lines
1.3 KiB
var path = require("path");
|
|
var fs = require("fs");
|
|
var promises = require("../lib/promises");
|
|
var _ = require("underscore");
|
|
|
|
exports.testPath = testPath;
|
|
exports.testData = testData;
|
|
exports.createFakeDocxFile = createFakeDocxFile;
|
|
exports.createFakeFiles = createFakeFiles;
|
|
|
|
|
|
function testPath(filename) {
|
|
return path.join(__dirname, "test-data", filename);
|
|
}
|
|
|
|
function testData(testDataPath) {
|
|
var fullPath = testPath(testDataPath);
|
|
return promises.nfcall(fs.readFile, fullPath, "utf-8");
|
|
}
|
|
|
|
function createFakeDocxFile(files) {
|
|
function exists(path) {
|
|
return !!files[path];
|
|
}
|
|
|
|
return {
|
|
read: createRead(files),
|
|
exists: exists
|
|
};
|
|
}
|
|
|
|
function createFakeFiles(files) {
|
|
return {
|
|
read: createRead(files)
|
|
};
|
|
}
|
|
|
|
function createRead(files) {
|
|
function read(path, encoding) {
|
|
return promises.when(files[path], function(buffer) {
|
|
if (_.isString(buffer)) {
|
|
buffer = new Buffer(buffer);
|
|
}
|
|
|
|
if (!Buffer.isBuffer(buffer)) {
|
|
return promises.reject(new Error("file was not a buffer"));
|
|
} else if (encoding) {
|
|
return promises.when(buffer.toString(encoding));
|
|
} else {
|
|
return promises.when(buffer);
|
|
}
|
|
});
|
|
}
|
|
return read;
|
|
}
|
|
|