solovyov.net

Я десятиріччями для тестів бібліотек на джаваскрипті юзав маленький фреймворк під назвою WRU. Не жартую про десятиріччя, перша згадка — в грудні 2012 року. Сам в шоку, так.

Ну і для Твінспарку я тоді взяв його ж, але він зламався на промісах. Нічого не ясно, але я створив issue на гітхабі, та автор відповів "давно вже не юзаю, не сапорчу і не шарю" і заархівував проєкт. 🤣 Я все переробив на таймаути та й на тому заспокоївся на пару років, аж на минулому тижні мені стрельнуло дописати трохи функціональності у Твінспарк (це окрема історія), і для тестів знов знадобилися проміси.

Я пішов глянути код WRU, а там жах. wru.async робить страшне, функції звуться isGonnaBeLegen та Dary — супер, що ти такий жартівник, дуже зручно. Я пішов шукати заміни, але jest на 300 кб та mocha на 2 мб мене щось не приваблювали. Я хочу 1 маленький файл, який я кину у теку vendor і не буду мати справ із NPM'ом з цього приводу.

Після години розглядання купи джаваскриптових ліб, які або абсолютно дурних розмірів і складності, або репортять через console.log замість намалювати прогрес у браузері, я взяв і написав власну. Вийшло реально менше сотні рядочків, з асинхронністю (await test.func() та й рибка в сітці, якийсь прогрес все ж-таки є!), кайф.

А тільки що дописав ще запускалку тестів у HTML'і у headless Хромі, і тепер в мене є повноцінний CI для Твінспарка. :-) Тут, правда, не обійшлося без NPM, бо якось з консолі отримати якийсь фідбек із Хрому фактично неможливо. Шкода. 😁

Мораль: не завжди найприємніша дорога недоречна. 🤣

(@ tg)