Skip to content

Commit bfba8a1

Browse files
committed
Add tests.
1 parent 17111d7 commit bfba8a1

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

test/http/request.test.js

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,130 @@ describe('http.ServerRequest', function() {
246246
});
247247
});
248248

249+
describe('establishing a session and not keeping previous session data', function() {
250+
var passport = new Passport();
251+
passport.serializeUser(function(user, done) {
252+
done(null, user.id);
253+
});
254+
255+
var req = new Object();
256+
req.login = request.login;
257+
req.isAuthenticated = request.isAuthenticated;
258+
req.isUnauthenticated = request.isUnauthenticated;
259+
req._passport = {};
260+
req._passport.instance = passport;
261+
req._sessionManager = passport._sm;
262+
req.session = { cart: [ '1', '2', ] };
263+
Object.defineProperty(req.session, 'id', { value: '1' });
264+
req.session.regenerate = function(cb) {
265+
req.session = { id: '2' };
266+
req.session.save = function(cb) {
267+
process.nextTick(cb);
268+
};
269+
process.nextTick(cb);
270+
};
271+
272+
var error;
273+
274+
before(function(done) {
275+
var user = { id: '1', username: 'root' };
276+
277+
req.login(user, function(err) {
278+
error = err;
279+
done();
280+
});
281+
});
282+
283+
it('should not error', function() {
284+
expect(error).to.be.undefined;
285+
});
286+
287+
it('should be authenticated', function() {
288+
expect(req.isAuthenticated()).to.be.true;
289+
expect(req.isUnauthenticated()).to.be.false;
290+
});
291+
292+
it('should regenerate session', function() {
293+
expect(req.session.id).to.equal('2');
294+
});
295+
296+
it('should keep session data', function() {
297+
expect(req.session.cart).to.be.undefined;
298+
});
299+
300+
it('should set user', function() {
301+
expect(req.user).to.be.an('object');
302+
expect(req.user.id).to.equal('1');
303+
expect(req.user.username).to.equal('root');
304+
});
305+
306+
it('should serialize user', function() {
307+
expect(req.session['passport'].user).to.equal('1');
308+
});
309+
});
310+
311+
describe('establishing a session and keeping previous session data', function() {
312+
var passport = new Passport();
313+
passport.serializeUser(function(user, done) {
314+
done(null, user.id);
315+
});
316+
317+
var req = new Object();
318+
req.login = request.login;
319+
req.isAuthenticated = request.isAuthenticated;
320+
req.isUnauthenticated = request.isUnauthenticated;
321+
req._passport = {};
322+
req._passport.instance = passport;
323+
req._sessionManager = passport._sm;
324+
req.session = { cart: [ '1', '2', ] };
325+
Object.defineProperty(req.session, 'id', { value: '1' });
326+
req.session.regenerate = function(cb) {
327+
req.session = { id: '2' };
328+
req.session.save = function(cb) {
329+
process.nextTick(cb);
330+
};
331+
process.nextTick(cb);
332+
};
333+
334+
var error;
335+
336+
before(function(done) {
337+
var user = { id: '1', username: 'root' };
338+
339+
req.login(user, { keepSessionData: true }, function(err) {
340+
error = err;
341+
done();
342+
});
343+
});
344+
345+
it('should not error', function() {
346+
expect(error).to.be.undefined;
347+
});
348+
349+
it('should be authenticated', function() {
350+
expect(req.isAuthenticated()).to.be.true;
351+
expect(req.isUnauthenticated()).to.be.false;
352+
});
353+
354+
it('should regenerate session', function() {
355+
expect(req.session.id).to.equal('2');
356+
});
357+
358+
it('should keep session data', function() {
359+
expect(req.session.cart).to.deep.equal([ '1', '2' ]);
360+
});
361+
362+
it('should set user', function() {
363+
expect(req.user).to.be.an('object');
364+
expect(req.user.id).to.equal('1');
365+
expect(req.user.username).to.equal('root');
366+
});
367+
368+
it('should serialize user', function() {
369+
expect(req.session['passport'].user).to.equal('1');
370+
});
371+
});
372+
249373
describe('establishing a session and setting custom user property', function() {
250374
var passport = new Passport();
251375
passport.serializeUser(function(user, done) {

0 commit comments

Comments
 (0)