/
githubmirror
/
ionic
Обзор
Документация
Войти
/
githubmirror
/
ionic
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
core/src/components/loading/test/loading-id.spec.tsx
55 строк
2 KB
Mikel Hamer
fix(overlays): do not overwrite id set in htmlAttributes (#29722)
24 июл 2024, 17:17
Не верифицирован
24 июл 2024, 17:17
92ce563
Код
Авторство
О чём код?
import { newSpecPage } from '@stencil/core/testing'; import { Loading } from '../loading'; import { h } from '@stencil/core'; describe('loading: id', () => { it('loading should be assigned an incrementing id', async () => { const page = await newSpecPage({ components: [Loading], html: `<ion-loading is-open="true"></ion-loading>`, }); let loading: HTMLIonLoadingElement; loading = page.body.querySelector('ion-loading')!; expect(loading).not.toBe(null); expect(loading.getAttribute('id')).toBe('ion-overlay-1'); // Remove the loading from the DOM loading.remove(); await page.waitForChanges(); // Create a new loading to verify the id is incremented loading = document.createElement('ion-loading'); loading.isOpen = true; page.body.appendChild(loading); await page.waitForChanges(); loading = page.body.querySelector('ion-loading')!; expect(loading.getAttribute('id')).toBe('ion-overlay-2'); // Presenting the same loading again should reuse the existing id loading.isOpen = false; await page.waitForChanges(); loading.isOpen = true; await page.waitForChanges(); loading = page.body.querySelector('ion-loading')!; expect(loading.getAttribute('id')).toBe('ion-overlay-2'); }); it('should not overwrite the id set in htmlAttributes', async () => { const id = 'custom-id'; const page = await newSpecPage({ components: [Loading], template: () => <ion-loading htmlAttributes={{ id }} overlayIndex={-1}></ion-loading>, }); const alert = page.body.querySelector('ion-loading')!; expect(alert.id).toBe(id); }); });