появляться фантомные попадалки )
ну как фантомные... все тесты красные с beforeEach...
если же создать один IT и туда вынести все что твориться в describe и вынести этот IT выше describe... то весь тест зеленый...
WTF?
нашел, что TestBed.inject(WINDOW) из мока не выдает данные... если IT запустить отдельно всегда ЗЕЛЕНЫЙ... в describe всегда красный....
вынес в beforeAll(() => { windowToken = TestBed.inject(WINDOW); }); теперь нормально все.....
у нас встроенного WINDOW нету :)
вообще плохо работать с одним инстансом во всех тестах это может привести к неожиданным результатам
как вы тестовый модуль описали?
ну до этого было в beforeEach и проблем не замечалось но после того как с jest@27 перешел на jest@29 у меня все сломано,,,, гдето 90% тестов слегли сразу
не понятно где и как вы провайдите WINDOW, по идее windowToken должен быть undefined, тк beforeAll срабатывает до создания модуля для тестов
я бы сервис провайдил тоже, и доставал через testBed в каждом it pros: ты можешь поменять в сервисе местами инжектебл, или вообще переписать на inject fn, тест не надо трогать cons: чуть больше кода
@ngSamurai пирипиши!1! : D
не... мне нужен такой садомазо подход) мне бы побыстрее сдать задачу)
а потом как техдолг пойдет, хитро, без работы не останешься : D
его и так много... поэтому и делаем миграции на 15ю ангу сначала.. потом все остальное в течении 2024 будет планироваться
ну.. когда прибьют инжектебл в конструкторе, у вас тесты посыпятся
ну скорее всего замутят схематики миграционные на этот случай ) у нас уже 10к+ тестов )
Там не только тесты, там все посыпеся
ангуляр сделают миграции
теперь и это отвалилось почти везде... замена на beforeEach решает сразу проблему.... да что же это такое с jest 🤬 🤬 🤬 🤬 🤬 Test Suites: 10 passed, 10 total Tests: 136 passed, 136 total Snapshots: 0 total Time: 5.36 s, estimated 7 s Ran all test suites. ✨ Done in 7.05s. ???????????? как так??????
у нас стоит такой враппер https://stackoverflow.com/a/57219228
я немого запутался, у вас был beforeEach или beforeAll?
а нахера в beforeAll тестовый модуль создавать? тесты должны быть изолированные
а то что вы завязываесь на один модуль для всех тестов - это ваша проблема
ппц jest медленный
так вы так или иначе из модуля вытягиваете что нибудь, в данном случае это WINDOW чтобы его в сервис прокинуть, плюс еще непонятно что за false передаете. Уж лучше сервис вытащить из TestBed
нельзя его использовать для создания тестового модуля
это было в кодовой базе на новой работе )
да.. замена на beforeEach подняла процент зеленых тестов )))))
так это ожидаемо, я вообще удивлен как у вас до этого тесты не падали, или у вас настолько тесты простые
это просто ж****а .. а не понимаю.. после миграции на ts@4.9.5 + jest@29 + angular@15 я столько ошибок выловил уже... что непонятно как до это все запускалось со 100% ковереджем
> 100% ковереджем судя по тому что раньше не падало с учетом не изолированных тестов - каверейдж тут для галочки был
Обсуждают сегодня