feat(server): auto refresh session (#6613)

This commit is contained in:
EYHN
2024-04-19 07:00:12 +00:00
parent a2fa9149ff
commit 5e243de392
7 changed files with 82 additions and 16 deletions

View File

@@ -69,7 +69,7 @@ test('should be able to visit public api if signed in', async t => {
const { app, auth } = t.context;
// @ts-expect-error mock
auth.getUser.resolves({ id: '1' });
auth.getUser.resolves({ user: { id: '1' } });
const res = await request(app.getHttpServer())
.get('/public')
@@ -98,7 +98,7 @@ test('should be able to visit private api if signed in', async t => {
const { app, auth } = t.context;
// @ts-expect-error mock
auth.getUser.resolves({ id: '1' });
auth.getUser.resolves({ user: { id: '1' } });
const res = await request(app.getHttpServer())
.get('/private')
@@ -111,6 +111,9 @@ test('should be able to visit private api if signed in', async t => {
test('should be able to parse session cookie', async t => {
const { app, auth } = t.context;
// @ts-expect-error mock
auth.getUser.resolves({ user: { id: '1' } });
await request(app.getHttpServer())
.get('/public')
.set('cookie', `${AuthService.sessionCookieName}=1`)
@@ -122,6 +125,9 @@ test('should be able to parse session cookie', async t => {
test('should be able to parse bearer token', async t => {
const { app, auth } = t.context;
// @ts-expect-error mock
auth.getUser.resolves({ user: { id: '1' } });
await request(app.getHttpServer())
.get('/public')
.auth('1', { type: 'bearer' })

View File

@@ -156,7 +156,7 @@ test('should be able to get user from session', async t => {
const session = await auth.createUserSession(u1);
const user = await auth.getUser(session.sessionId);
const { user } = await auth.getUser(session.sessionId);
t.not(user, null);
t.is(user!.id, u1.id);
@@ -202,8 +202,8 @@ test('should be able to signout multi accounts session', async t => {
t.not(signedOutSession, null);
const signedU2 = await auth.getUser(session.sessionId, 0);
const noUser = await auth.getUser(session.sessionId, 1);
const { user: signedU2 } = await auth.getUser(session.sessionId, 0);
const { user: noUser } = await auth.getUser(session.sessionId, 1);
t.is(noUser, null);
t.not(signedU2, null);
@@ -215,6 +215,6 @@ test('should be able to signout multi accounts session', async t => {
t.is(signedOutSession, null);
const noUser2 = await auth.getUser(session.sessionId, 0);
const { user: noUser2 } = await auth.getUser(session.sessionId, 0);
t.is(noUser2, null);
});