Я десятиріччями для тестів бібліотек на джаваскрипті юзав маленький фреймворк під назвою WRU. Не жартую про десятиріччя, перша згадка — в грудні 2012 року. Сам в шоку, так.
Ну і для Твінспарку я тоді взяв його ж, але він зламався на промісах. Нічого не ясно, але я створив issue на гітхабі, та автор відповів "давно вже не юзаю, не сапорчу і не шарю" і заархівував проєкт. 🤣 Я все переробив на таймаути та й на тому заспокоївся на пару років, аж на минулому тижні мені стрельнуло дописати трохи функціональності у Твінспарк (це окрема історія), і для тестів знов знадобилися проміси.
Я пішов глянути код WRU, а там жах. wru.async
робить страшне, функції звуться isGonnaBeLegen
та Dary
— супер, що ти такий жартівник, дуже зручно. Я пішов шукати заміни, але jest
на 300 кб та mocha
на 2 мб мене щось не приваблювали. Я хочу 1 маленький файл, який я кину у теку vendor
і не буду мати справ із NPM'ом з цього приводу.
Після години розглядання купи джаваскриптових ліб, які або абсолютно дурних розмірів і складності, або репортять через console.log
замість намалювати прогрес у браузері, я взяв і написав власну. Вийшло реально менше сотні рядочків, з асинхронністю (await test.func()
та й рибка в сітці, якийсь прогрес все ж-таки є!), кайф.
А тільки що дописав ще запускалку тестів у HTML'і у headless Хромі, і тепер в мене є повноцінний CI для Твінспарка. :-) Тут, правда, не обійшлося без NPM, бо якось з консолі отримати якийсь фідбек із Хрому фактично неможливо. Шкода. 😁
Мораль: не завжди найприємніша дорога недоречна. 🤣