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:
parent
95d36b89d7
commit
b3704666bc
@ -16,5 +16,12 @@ exports.router = function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get('/logout', (req, res) => {
|
||||||
|
if (req.session) {
|
||||||
|
req.session = null;
|
||||||
|
}
|
||||||
|
res.redirect('/');
|
||||||
|
});
|
||||||
|
|
||||||
return router;
|
return router;
|
||||||
};
|
};
|
||||||
|
57
lib/routes/admin-api/user.test.js
Normal file
57
lib/routes/admin-api/user.test.js
Normal 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', '/');
|
||||||
|
});
|
@ -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",
|
||||||
|
Loading…
Reference in New Issue
Block a user