File: D:/web/matomo.vdk/plugins/CoreHome/vue/src/Alert/Alert.spec.ts
/*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
import { mount } from '@vue/test-utils';
import Alert from './Alert.vue';
describe('CoreHome/Alert', () => {
function createWrapper(severity: string, message = 'This is a warning') {
return mount(Alert, {
props: { severity },
slots: { default: message },
});
}
it('should render slot content and severity class', () => {
const wrapper = createWrapper('warning');
expect(wrapper.classes()).toContain('alert');
expect(wrapper.classes()).toContain('alert-warning');
expect(wrapper.text()).toContain('This is a warning');
});
it('should update severity class when prop changes', async () => {
const wrapper = createWrapper('info', 'Informational message');
expect(wrapper.classes()).toContain('alert-info');
expect(wrapper.classes()).not.toContain('alert-error');
await wrapper.setProps({ severity: 'error' });
expect(wrapper.classes()).toContain('alert-error');
expect(wrapper.classes()).not.toContain('alert-info');
});
});