Size: a a a

2021 April 09

МТ

Марк Танащук... in Svelte [svelt]
=)
источник
2021 April 10

AD

Alexander A. Dyshev in Svelte [svelt]
Привет, есть идеи как тестировать named slots? Пока я нашел только один ответ - никак.
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Я тоже не в курсе вопроса, но вроде как представляю, что такое слоты. Это разметка же в итоге. Т.е. тут либо снапшот тесты (н-р jest). Либо функциональные (cypress, testcafe).
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
А что конкретно тестировать хочется?
источник

AD

Alexander A. Dyshev in Svelte [svelt]
Спасибо, @duodvk , с функциональными/интеграционными понятно, меня больше юнит интересуют с jest. В двух словах - в тесте рендерится только один (первый) слот. Все остальные просто игнорируются. Соответственно, протестировать можно только компонент с одним слотом 😕 на гитхабе только что ответили, мол - “There's not currently an official API for programmatically passing slots to a component constructor.” так что я думаю пока ответ таки “никак"
источник

AD

Alexander A. Dyshev in Svelte [svelt]
убедиться можете сами 🙂 Попробуйте протестировать jest’ом пример из https://svelte.dev/tutorial/named-slots, чем-то типа expect(getByText("42 Wallaby Way")).toBeInTheDocument()… <- текст из второго слота.
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Просто насколько я понимаю, юнит тесты они не для тестирования разметки. Хотя я могу чего-то не знать. Снапшот тесты по идее помогут тут. Можно взять и потестить снапшоты для рутового компонента и проверить что все слоты корректно заполнились...
источник

AD

Alexander A. Dyshev in Svelte [svelt]
все верно, но тестируя код компонента бывают случаи что единственно видимый результат тестируемого действия это изменение “разметки”
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Со слотами получается что да. Но с другой стороны вопрос, а нужно это тестировать вообще? Это же механизм фреймворка. И обычно считаем что браузер и фреймворк не нужно тестировать. То есть если мы проверили данные, то на этом по идее всё. Дальше только снапшоты или функциональные или картинки сравнивать по идее
источник

AD

Alexander A. Dyshev in Svelte [svelt]
это в теории.. на практике же есть инструмент, который работает отлично, но только в частном случае (один слот)
источник

DK

Dmitry Kurmanov in Svelte [svelt]
А то есть проблема не в тестах, именно много слотов не работают? Извините, если в сторону увел. Я не большой спец в Svelte пока :)
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Точнее сказать не работают много слотов через component API
источник

AD

Alexander A. Dyshev in Svelte [svelt]
все ок, да. @testing-library/svelte, метод render 🙂 “рендерит” только первый слот в списке. Причина - это скорее всего именно то та что мне на гитхабе сказали.
источник

AD

Alexander A. Dyshev in Svelte [svelt]
я подумал, может есть какой-то workaround - снепшот, функциональщина - возможно, но не в моем случае.
источник

AD

Alexander A. Dyshev in Svelte [svelt]
буду ждать пока починят.
источник

AD

Alexander A. Dyshev in Svelte [svelt]
В любом случае спасибо.
источник

DK

Dmitry Kurmanov in Svelte [svelt]
А дайте пожалуйста ссылку на issue. Я тоже "лайкну"
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Может и есть что, сейчас может @PaulMaly или другие спецы отпишут :)
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Кстати а это не оно? https://github.com/sveltejs/svelte/issues/2588
источник

AD

Alexander A. Dyshev in Svelte [svelt]
во всяком случае очень рядом
источник