Skip to content

Commit

Permalink
Add sign-out route #288
Browse files Browse the repository at this point in the history
  • Loading branch information
ivaosthu committed Jan 17, 2018
1 parent a9ee3a0 commit b222c9a
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 0 deletions.
7 changes: 7 additions & 0 deletions lib/routes/admin-api/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,12 @@ exports.router = function() {
}
});

router.get('/logout', (req, res) => {
if (req.session) {
req.session = null;
}
res.redirect('/');
});

return router;
};
57 changes: 57 additions & 0 deletions lib/routes/admin-api/user.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
'use strict';

const { test } = require('ava');
const store = require('./../../../test/fixtures/store');
const supertest = require('supertest');
const getApp = require('../../app');
const User = require('../../user');

const { EventEmitter } = require('events');
const eventBus = new EventEmitter();

const currentUser = new User({ email: '[email protected]' });

function getSetup() {
const base = `/random${Math.round(Math.random() * 1000)}`;
const stores = store.createStores();
const app = getApp({
baseUriPath: base,
stores,
eventBus,
preHook: a => {
a.use((req, res, next) => {
req.user = currentUser;
next();
});
},
});

return {
base,
strategyStore: stores.strategyStore,
request: supertest(app),
};
}

test('should return current user', t => {
t.plan(1);
const { request, base } = getSetup();

return request
.get(`${base}/api/admin/user`)
.expect(200)
.expect('Content-Type', /json/)
.expect(res => {
t.true(res.body.email === currentUser.email);
});
});

test('should logout and redirect', t => {
t.plan(0);
const { request, base } = getSetup();

return request
.get(`${base}/api/admin/user/logout`)
.expect(302)
.expect('Location', '/');
});
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
},
"scripts": {
"start": "node server.js",
"start:google": "node examples/google-auth-unleash.js",
"start:dev": "NODE_ENV=development supervisor --ignore ./node_modules/ server.js",
"start:dev:pg": "pg_virtualenv npm run start:dev:pg-chain",
"start:dev:pg-chain": "export DATABASE_URL=postgres://$PGUSER:$PGPASSWORD@localhost:$PGPORT/postgres ; db-migrate up && npm run start:dev",
Expand Down

0 comments on commit b222c9a

Please sign in to comment.