Skip to content

Commit e00f649

Browse files
authored
Merge pull request #8440 from nextcloud-libraries/fix/avatar-guestFallback
2 parents f568afc + 0352328 commit e00f649

3 files changed

Lines changed: 22 additions & 22 deletions

File tree

src/utils/getAvatarUrl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ interface AvatarUrlOptions {
3333
*/
3434
export function getAvatarUrl(user: string, options?: AvatarUrlOptions): string {
3535
// backend only supports 64 and 512px
36-
// so we only requrest the needed size for better caching of the request.
36+
// so we only request the needed size for better caching of the request.
3737
const size = (options?.size || 64) <= 64
3838
? 64
3939
: 512
@@ -45,7 +45,7 @@ export function getAvatarUrl(user: string, options?: AvatarUrlOptions): string {
4545
? '/dark'
4646
: ''
4747

48-
return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {
48+
return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}?guestFallback=true`, {
4949
user,
5050
size,
5151
})

tests/unit/components/NcAvatar/NcAvatar.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ describe('NcAvatar.vue', () => {
153153
await nextTick()
154154

155155
expect(wrapper.find('img').exists()).toBeTruthy()
156-
expect(wrapper.find('img').attributes('src')).toMatch(/avatar\/user1\/64$/)
156+
expect(wrapper.find('img').attributes('src')).toMatch(/avatar\/user1\/64\?guestFallback=true$/)
157157
})
158158

159159
it('should render image with avatar url pointing to a user', async () => {

tests/unit/utils/getAvatarUrl.spec.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,56 +12,56 @@ describe('getAvatarUrl', () => {
1212
})
1313

1414
it('should return correct relative URL for user avatar', () => {
15-
expect(getAvatarUrl('alice')).toBe('//index.php/avatar/alice/64')
16-
expect(getAvatarUrl('john', { size: 64 })).toBe('//index.php/avatar/john/64')
15+
expect(getAvatarUrl('alice')).toBe('//index.php/avatar/alice/64?guestFallback=true')
16+
expect(getAvatarUrl('john', { size: 64 })).toBe('//index.php/avatar/john/64?guestFallback=true')
1717
})
1818

1919
it('should return correct relative URL with fixed sizes', () => {
2020
/// @ts-expect-error testing invalid value
21-
expect(getAvatarUrl('alice', { size: 0 })).toBe('//index.php/avatar/alice/64')
21+
expect(getAvatarUrl('alice', { size: 0 })).toBe('//index.php/avatar/alice/64?guestFallback=true')
2222
/// @ts-expect-error testing invalid value
23-
expect(getAvatarUrl('alice', { size: -1 })).toBe('//index.php/avatar/alice/64')
24-
expect(getAvatarUrl('john', { size: 64 })).toBe('//index.php/avatar/john/64')
23+
expect(getAvatarUrl('alice', { size: -1 })).toBe('//index.php/avatar/alice/64?guestFallback=true')
24+
expect(getAvatarUrl('john', { size: 64 })).toBe('//index.php/avatar/john/64?guestFallback=true')
2525
/// @ts-expect-error testing invalid value
26-
expect(getAvatarUrl('john', { size: 65 })).toBe('//index.php/avatar/john/512')
27-
expect(getAvatarUrl('john', { size: 512 })).toBe('//index.php/avatar/john/512')
26+
expect(getAvatarUrl('john', { size: 65 })).toBe('//index.php/avatar/john/512?guestFallback=true')
27+
expect(getAvatarUrl('john', { size: 512 })).toBe('//index.php/avatar/john/512?guestFallback=true')
2828
})
2929

3030
it('should return correct relative URL for user avatar in dark mode', () => {
3131
document.body.style.setProperty('--background-invert-if-dark', 'invert(100%)')
3232

33-
expect(getAvatarUrl('alice')).toBe('//index.php/avatar/alice/64/dark')
34-
expect(getAvatarUrl('john', { size: 512 })).toBe('//index.php/avatar/john/512/dark')
33+
expect(getAvatarUrl('alice')).toBe('//index.php/avatar/alice/64/dark?guestFallback=true')
34+
expect(getAvatarUrl('john', { size: 512 })).toBe('//index.php/avatar/john/512/dark?guestFallback=true')
3535
})
3636

3737
it('should return correct relative URL for user avatar in dark mode if enforced', () => {
38-
expect(getAvatarUrl('alice', { isDarkTheme: true })).toBe('//index.php/avatar/alice/64/dark')
39-
expect(getAvatarUrl('john', { isDarkTheme: true, size: 512 })).toBe('//index.php/avatar/john/512/dark')
38+
expect(getAvatarUrl('alice', { isDarkTheme: true })).toBe('//index.php/avatar/alice/64/dark?guestFallback=true')
39+
expect(getAvatarUrl('john', { isDarkTheme: true, size: 512 })).toBe('//index.php/avatar/john/512/dark?guestFallback=true')
4040
})
4141

4242
it('should return correct relative URL for user avatar in bright mode if enforced but body is darkmode', () => {
4343
document.body.style.setProperty('--background-invert-if-dark', 'invert(100%)')
4444

45-
expect(getAvatarUrl('alice', { isDarkTheme: false })).toBe('//index.php/avatar/alice/64')
46-
expect(getAvatarUrl('john', { isDarkTheme: false, size: 512 })).toBe('//index.php/avatar/john/512')
45+
expect(getAvatarUrl('alice', { isDarkTheme: false })).toBe('//index.php/avatar/alice/64?guestFallback=true')
46+
expect(getAvatarUrl('john', { isDarkTheme: false, size: 512 })).toBe('//index.php/avatar/john/512?guestFallback=true')
4747
})
4848

4949
it('should return correct relative URL for user avatar in dark mode', () => {
5050
document.body.style.setProperty('--background-invert-if-dark', 'invert(100%)')
5151

52-
expect(getAvatarUrl('alice')).toBe('//index.php/avatar/alice/64/dark')
53-
expect(getAvatarUrl('john', { size: 64 })).toBe('//index.php/avatar/john/64/dark')
52+
expect(getAvatarUrl('alice')).toBe('//index.php/avatar/alice/64/dark?guestFallback=true')
53+
expect(getAvatarUrl('john', { size: 64 })).toBe('//index.php/avatar/john/64/dark?guestFallback=true')
5454
})
5555

5656
it('should return correct relative URL for guest avatar', () => {
57-
expect(getAvatarUrl('alice', { isGuest: true })).toBe('//index.php/avatar/guest/alice/64')
58-
expect(getAvatarUrl('john', { size: 64, isGuest: true })).toBe('//index.php/avatar/guest/john/64')
57+
expect(getAvatarUrl('alice', { isGuest: true })).toBe('//index.php/avatar/guest/alice/64?guestFallback=true')
58+
expect(getAvatarUrl('john', { size: 64, isGuest: true })).toBe('//index.php/avatar/guest/john/64?guestFallback=true')
5959
})
6060

6161
it('should return correct relative URL for guest avatar in dark mode', () => {
6262
document.body.style.setProperty('--background-invert-if-dark', 'invert(100%)')
6363

64-
expect(getAvatarUrl('alice', { isGuest: true })).toBe('//index.php/avatar/guest/alice/64/dark')
65-
expect(getAvatarUrl('john', { size: 64, isGuest: true })).toBe('//index.php/avatar/guest/john/64/dark')
64+
expect(getAvatarUrl('alice', { isGuest: true })).toBe('//index.php/avatar/guest/alice/64/dark?guestFallback=true')
65+
expect(getAvatarUrl('john', { size: 64, isGuest: true })).toBe('//index.php/avatar/guest/john/64/dark?guestFallback=true')
6666
})
6767
})

0 commit comments

Comments
 (0)