Skip to content

Commit 2d4aca1

Browse files
committed
Merge branch 'fix/pref-error-msg' of https://github.com/solidos/solid-ui into fix/pref-error-msg
2 parents db5bcef + d71f51e commit 2d4aca1

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

src/login/login.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1060,7 +1060,7 @@ export async function getUserRoles (): Promise<Array<NamedNode>> {
10601060
try {
10611061
const { me, preferencesFile, preferencesFileError } = await ensureLoadedPreferences({ me: currentUser })
10621062
if (!preferencesFile || preferencesFileError) {
1063-
return []
1063+
throw new Error(preferencesFileError || 'Unable to load user preferences file.')
10641064
}
10651065
return solidLogicSingleton.store.each(
10661066
me,

test/unit/login/login.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,29 @@ describe('ensureLoggedIn', () => {
1111
expect(testLogin.ensureLoggedIn({})).toBeInstanceOf(Object)
1212
})
1313
})
14+
15+
describe('getUserRoles', () => {
16+
afterEach(() => {
17+
jest.restoreAllMocks()
18+
jest.resetModules()
19+
})
20+
21+
it('returns [] and does not load preferences when current user is missing', async () => {
22+
const solidLogic = require('solid-logic')
23+
24+
const currentUserSpy = jest
25+
.spyOn(solidLogic.authn, 'currentUser')
26+
.mockReturnValue(null)
27+
const loadPreferencesSpy = jest.spyOn(
28+
solidLogic.solidLogicSingleton.profile,
29+
'loadPreferences'
30+
)
31+
32+
const loginModule = require('../../../src/login/login')
33+
const roles = await loginModule.getUserRoles()
34+
35+
expect(currentUserSpy).toHaveBeenCalled()
36+
expect(roles).toEqual([])
37+
expect(loadPreferencesSpy).not.toHaveBeenCalled()
38+
})
39+
})

0 commit comments

Comments
 (0)