1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00

Add sign-out route #288

This commit is contained in:
ivaosthu 2018-01-17 09:46:16 +01:00 committed by Ivar Conradi Østhus
parent 95d36b89d7
commit b3704666bc
3 changed files with 65 additions and 0 deletions

View File

@ -16,5 +16,12 @@ exports.router = function() {
} }
}); });
router.get('/logout', (req, res) => {
if (req.session) {
req.session = null;
}
res.redirect('/');
});
return router; return router;
}; };

View File

@ -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: 'test@mail.com' });
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', '/');
});

View File

@ -33,6 +33,7 @@
}, },
"scripts": { "scripts": {
"start": "node server.js", "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": "NODE_ENV=development supervisor --ignore ./node_modules/ server.js",
"start:dev:pg": "pg_virtualenv npm run start:dev:pg-chain", "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", "start:dev:pg-chain": "export DATABASE_URL=postgres://$PGUSER:$PGPASSWORD@localhost:$PGPORT/postgres ; db-migrate up && npm run start:dev",