diff --git a/frontend/cypress/e2e/user/avatar-types.spec.ts b/frontend/cypress/e2e/user/avatar-types.spec.ts new file mode 100644 index 000000000..2221140ce --- /dev/null +++ b/frontend/cypress/e2e/user/avatar-types.spec.ts @@ -0,0 +1,38 @@ +import {UserFactory, type UserAttributes} from '../../factories/user' +import {login} from '../../support/authenticateUser' + +const avatarProviders = ['initials', 'gravatar', 'marble', 'upload', 'ldap'] as const + +describe('User avatars', () => { + avatarProviders.forEach(provider => { + describe(`Avatar provider ${provider}`, () => { + let user: UserAttributes + + beforeEach(() => { + const overrides: Partial = { + username: `user_${provider}`, + avatar_provider: provider, + } + + if (provider === 'gravatar') { + overrides.email = `user_${provider}@example.com` + } + if (provider === 'upload' || provider === 'ldap') { + overrides.avatar_file_id = 1 + } + + user = UserFactory.create(1, overrides)[0] as UserAttributes + login(user) + }) + + it('Shows the avatar image', () => { + cy.visit('/') + cy.get('.username-dropdown-trigger img.avatar') + .should('be.visible') + .and(($img) => { + expect($img[0].naturalWidth).to.be.greaterThan(0) + }) + }) + }) + }) +})