Skip to content
Snippets Groups Projects
Commit 63606a6c authored by Sverre Frogner Haugen's avatar Sverre Frogner Haugen
Browse files

Added unit test to BadgeInfo component

parent 329df7f6
No related branches found
No related tags found
1 merge request!67Profile components unit tests
Pipeline #281163 failed
import { mount } from '@vue/test-utils';
import BadgeInfo from '@/components/profile/BadgeInfo.vue';
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
import { createPinia, setActivePinia } from 'pinia';
describe('Component', () => {
beforeEach(() => {
setActivePinia(createPinia());
});
it('renders badges with correct data', async () => {
const wrapper = mount(BadgeInfo, {
props: { title: 'Test Title' }
});
await wrapper.vm.$nextTick();
const badges = wrapper.findAll('.badge');
badges.forEach((badge, index) => {
const achievement = wrapper.vm.achievements[index];
const img = badge.find('.badge-img');
const title = badge.find('.badge-title');
expect(img.attributes('src')).toBe(achievement.img);
expect(img.attributes('alt')).toBe(achievement.title);
expect(title.text()).toBe(achievement.title);
});
});
});
import { mount } from '@vue/test-utils'
import UserInfo from '@/components/profile/UserInfo.vue'
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
import { updateUserInfo } from '../../utils/profileutils'
// Mocking getUserInfo and updateUserInfo functions
vi.mock('@/utils/profileutils', () => ({
getUserInfo: vi.fn(),
updateUserInfo: vi.fn()
}))
// Mocking useTokenStore
vi.mock('@/stores/token', () => ({
useTokenStore: vi.fn(() => ({ jwtToken: 'mockedToken' }))
}))
describe('UserInfo', () => {
let wrapper
beforeEach(() => {
wrapper = mount(UserInfo)
})
afterEach(() => {
wrapper.unmount()
})
it('fetches user info on mount', async () => {
expect.assertions(3)
await wrapper.vm.$nextTick()
expect(wrapper.vm.username).toBe('mockedUsername')
expect(wrapper.vm.email).toBe('mockedEmail')
expect(wrapper.vm.profilePictureBase64).toBe('mockedProfilePictureBase64')
})
it('saves user info when save button is clicked', async () => {
wrapper.vm.email = 'newemail@example.com'
wrapper.vm.profilePictureBase64 = 'newBase64String'
await wrapper.find('.save-button').trigger('click')
expect(updateUserInfo).toHaveBeenCalledWith(
'mockedToken',
'newemail@example.com',
'newBase64String'
)
})
it('validates email correctly', async () => {
wrapper.vm.email = 'invalidemail'
await wrapper.vm.$nextTick()
expect(wrapper.find('.error-message').text()).toBe('Ikke gyldig e-post adresse!')
expect(wrapper.find('.input').classes()).toContain('error')
})
// Add more tests as needed
})
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment