aboutsummaryrefslogtreecommitdiff
path: root/test/testing.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-03 19:19:21 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-03 19:20:00 +0100
commit0b56dfce42c3944cce47e284608e6806f4c839c3 (patch)
tree5f96f9c2908f1c5b00a7192e71d4c192abd7cf47 /test/testing.js
parent627c4a755395e313234bdb1914d168392006c483 (diff)
Move tests to test for easier Mocha usage
Diffstat (limited to 'test/testing.js')
-rw-r--r--test/testing.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/test/testing.js b/test/testing.js
new file mode 100644
index 0000000..d70f86e
--- /dev/null
+++ b/test/testing.js
@@ -0,0 +1,65 @@
+var path = require("path");
+var fs = require("fs");
+var promises = require("../lib/promises");
+var _ = require("underscore");
+
+exports.test = test;
+exports.testPath = testPath;
+exports.testData = testData;
+exports.createFakeDocxFile = createFakeDocxFile;
+exports.createFakeFiles = createFakeFiles;
+
+
+function test(name, func) {
+ it(name, function(done) {
+ var result = func();
+ promises.when(result).then(function() {
+ done();
+ }).done();
+ });
+}
+
+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;
+}