Skip to content

Commit 534c39e

Browse files
committed
WIP: added a default_session_user
1 parent 56a4c79 commit 534c39e

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

src/common/models/users.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ export interface SessionUser {
1818
student_id?: string;
1919
}
2020

21+
export const default_session_user: SessionUser = {
22+
user_id: 0,
23+
username: 'logged_out',
24+
is_admin: false
25+
};
26+
27+
2128
export type ParseableUser = Partial<SessionUser>;
2229

2330
/**

src/stores/session.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import { defineStore } from 'pinia';
44
import { api } from 'boot/axios';
5-
import { SessionUser, User } from 'src/common/models/users';
5+
import { SessionUser, User, default_session_user } from 'src/common/models/users';
66
import { ParseableSessionInfo, parseSessionInfo, SessionInfo, UserPassword } from 'src/common/models/session';
77
import { ParseableUserCourse } from 'src/common/models/courses';
88
import { logger } from 'boot/logger';
@@ -30,15 +30,13 @@ export interface SessionState {
3030
user_courses: ParseableUserCourse[];
3131
}
3232

33-
const logged_out_user = { username: 'logged_out', user_id: 0, is_admin: false };
34-
3533
export const useSessionStore = defineStore('session', {
3634
// Stores this in localStorage.
3735
persist: true,
3836
state: (): SessionState => ({
3937
logged_in: false,
4038
expiry: 0,
41-
user: logged_out_user,
39+
user: default_session_user,
4240
course: {
4341
course_id: 0,
4442
role: '',
@@ -65,7 +63,7 @@ export const useSessionStore = defineStore('session', {
6563
if (this.logged_in) {
6664
this.user = session_info.user;
6765
} else {
68-
this.user = logged_out_user;
66+
this.user = default_session_user;
6967
}
7068
},
7169
setCourse(course_id: number): void {
@@ -126,7 +124,7 @@ export const useSessionStore = defineStore('session', {
126124
},
127125
logout() {
128126
this.logged_in = false;
129-
this.user = logged_out_user;
127+
this.user = default_session_user;
130128
this.course = { course_id: 0, role: '', course_name: '' };
131129
useProblemSetStore().clearAll();
132130
useSettingsStore().clearAll();

tests/stores/session.spec.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { useSessionStore } from 'src/stores/session';
1818

1919
import { Course, UserCourse } from 'src/common/models/courses';
2020
import { SessionInfo } from 'src/common/models/session';
21-
import { SessionUser, User } from 'src/common/models/users';
21+
import { SessionUser, User, default_session_user } from 'src/common/models/users';
2222

2323
import { cleanIDs, loadCSV } from '../utils';
2424

@@ -38,12 +38,6 @@ describe('Session Store', () => {
3838
is_admin: false,
3939
};
4040

41-
const logged_out: SessionUser = {
42-
username: 'logged_out',
43-
user_id: 0,
44-
is_admin: false,
45-
};
46-
4741
const session_info: SessionInfo = {
4842
logged_in: true,
4943
user,
@@ -151,7 +145,7 @@ describe('Session Store', () => {
151145
session.logout();
152146

153147
expect(session.logged_in).toBe(false);
154-
expect(session.user).toStrictEqual(logged_out);
148+
expect(session.user).toStrictEqual(default_session_user);
155149

156150
});
157151
});

0 commit comments

Comments
 (0)