Slide 41
Slide 41 text
Refactor 1:
ॏෳͷഉআ
it('response body contains items', function(done) {
var items = []
var Item = {
paginate: function(query, opts, cb) {
setImmediate(function() {
var page = opts.page || 1
cb(null, items.slice(30 * (page - 1), 30 * page));
})
}
};
var app = express();
app.get('/items', index({ Item: Item }));
request(app)
.get('/items')
.expect(function(response) {
assert(response.body.items);
})
.end(done)
});
it('Get items', function(done) {
var items = [{ id: '12345', name: 'Javascript: The Good Parts',
price: 1800 }]
var Item = {
paginate: function(query, opts, cb) {
setImmediate(function() {
var page = opts.page || 1
cb(null, items.slice(30 * (page - 1), 30 * page));
})
}
};
var app = express();
app.get('/items', index({ Item: Item }));
request(app)
.get('/items')
.expect({ items: items }, done);
});
it('Pagenation with limit=30', function(done) {
var items = _.range(0, 31).map(function(i) {
return { id: i.toString(), name: 'name', price: 1200 }
});
var Item = {
paginate: function(query, opts, cb) {
setImmediate(function() {
var page = opts.page || 1
cb(null, items.slice(30 * (page - 1), 30 * page));
})
}
};
var app = express();
app.get('/items', index({ Item: Item }));
request(app)
.get('/items')
.expect(function(response) {
assert.equal(response.body.items.length, 30)
})
.end(done);
});
});
function initMockDb(items) {
return {
paginate: function(query, opts, cb) {
setImmediate(function() {
var page = opts.page || 1
cb(null,
items.slice(30 * (page - 1),
30 * page));
})
}
};
}
helper / utilͷॻ͖ग़͠