aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/spec/writerSpec.js34
-rw-r--r--docs/src/writer.js8
2 files changed, 39 insertions, 3 deletions
diff --git a/docs/spec/writerSpec.js b/docs/spec/writerSpec.js
index c0f80de3..1c25078c 100644
--- a/docs/spec/writerSpec.js
+++ b/docs/spec/writerSpec.js
@@ -1,7 +1,26 @@
-var writer = require('../src/writer.js');
+var writer,
+ rewire = require('rewire');
+
+function mockResolvedPromise(resolvedValue) {
+ return {
+ then: function(success, failure) {
+ success(resolvedValue);
+ }
+ };
+}
+
describe('writer', function() {
+
+ beforeEach(function() {
+ writer = rewire('../src/writer.js');
+ });
+
describe('toString', function() {
- var toString = writer.toString;
+ var toString;
+
+ beforeEach(function() {
+ toString = writer.toString;
+ });
it('should merge string', function() {
expect(toString('abc')).toEqual('abc');
@@ -31,4 +50,15 @@ describe('writer', function() {
expect(content).toBe('ng super jqlite manifest');
});
});
+
+ describe('copy', function() {
+ it('should call the transformation function', function() {
+ var readMock = jasmine.createSpy('readMock').andReturn(mockResolvedPromise('DUMMY CONTENT'));
+ writer.__set__("qfs.read", readMock);
+ var transformationFn = jasmine.createSpy('transformationFn');
+ writer.copy('from', 'to', transformationFn, 'arg1', 'arg2');
+ expect(readMock).toHaveBeenCalled();
+ expect(transformationFn).toHaveBeenCalledWith('DUMMY CONTENT', 'arg1', 'arg2');
+ });
+ });
});
diff --git a/docs/src/writer.js b/docs/src/writer.js
index c9089be0..cdfa12d6 100644
--- a/docs/src/writer.js
+++ b/docs/src/writer.js
@@ -51,13 +51,19 @@ exports.copyTemplate = function(filename) {
* @param transform{function=} transfromation function to be applied before return
*/
exports.copy = function(from, to, transform) {
+ var transformArgs = Array.prototype.slice.call(arguments, 3);
+
from = pathUtils.normalize(from);
to = pathUtils.normalize(to);
// We have to use binary reading, Since some characters are unicode.
return qfs.read(from, 'b').then(function(content) {
if (transform) {
- content = transform.call(null, content.toString(), from, to, transform);
+ // Pass any extra arguments, e.g.
+ // `copy(from, to, transform, extra1, extra2, ...)`
+ // to the transform function
+ transformArgs.unshift(content.toString());
+ content = transform.apply(null, transformArgs);
}
return output(to, content);
});