Skip to content

Commit

Permalink
Merge 4119e95 into df1fb43
Browse files Browse the repository at this point in the history
  • Loading branch information
atian25 committed Aug 24, 2015
2 parents df1fb43 + 4119e95 commit 068e684
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 8 deletions.
17 changes: 10 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,17 @@ module.exports = function (options) {
this[key] = context[key];
}

var view = data.__view;
debug('mock %s => %j, view: %s', this.url, data, view);
if (!view || IS_JSON_RE.test(this.path)) {
return this.body = data;
if (!data.__skipRender) {
var view = data.__view;
debug('mock %s => %j, view: %s', this.url, data, view);
if (!view || IS_JSON_RE.test(this.path)) {
return this.body = data;
}
yield this.render(view, data);
} else {
console.log(this.state)
yield* next;
}

yield this.render(view, data);

inject(this);
};

Expand Down
9 changes: 8 additions & 1 deletion test/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,14 @@ nunjucks.configure(path.join(fixtures, 'views'));

app.context.render = function* (view, data) {
var that = this;
data = data || '';
data = data || {};
if(this.state){
Object.keys(this.state).forEach(function(key){
if(!data.hasOwnProperty(key)){
data[key] = this.state[key];
}
}, this);
}
data.helper = {
getSessionId: function() {
return that.sessionId;
Expand Down
9 changes: 9 additions & 0 deletions test/fixtures/mocks/skipRender.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
name: 'skipRender',
__skipRender: true,
__context: {
state: {
name: 'skip-render'
}
}
};
8 changes: 8 additions & 0 deletions test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,14 @@ describe('index.test.js', function () {
.expect(/fengmk2/, done);
});

it('should skip render when __skipRender=true', function (done) {
request(app.listen())
.get('/?__scene=skipRender')
.expect('x-koa-mock', 'true')
.expect(/iframe/)
.expect(/skip-render/, done);
});

it('should also inject when __scene is not specified', function (done) {
request(app.listen())
.get('/users/1') // mocks/users/1/*
Expand Down

0 comments on commit 068e684

Please sign in to comment.