gemini-testing / testplane

Testplane (ex-hermione) browser test runner based on mocha and wdio
https://testplane.io
MIT License
687 stars 62 forks source link

Тесты на типы #872

Closed hheimerd closed 5 months ago

hheimerd commented 5 months ago

Contribution

Describe the user story

При обновлении с 7 версии на 8 исчезли некоторые типы, которые пришлось доставать из внутренностей билда, а типа для одной из команд вообще не было #871

Describe the solution you'd like

Предлагаю написать тесты на API, который указан в readme. Это будет выглядеть как typescript файл, в котором будут использоваться все типы, методы и функции, которые являются Public API. В случае если при обновлении пакета в этом файле упал typecheck, значит нужно либо поправить типы, либо написать об изменении в типах в breaking changes. Особенно это касается глобальных типов

Describe the drawbacks of your solution

Нужно будет следить, чтобы при изменении документации меняли и тесты на типы

Describe alternatives you've considered

Сейчас приходится писать типы вручную или лезть глубоко внутрь пакета за типами

shadowusr commented 5 months ago

Привет!

Давай разберемся в проблемах поочередно. Первая проблема, описанная тобой — смена экспортируемых типов в 8 версии hermione. Это было умышленное изменение, и именно поэтому оно выехало в мажорной версии. Мы планировали экспортировать изначально минимум типов, а по мере необходимости расширять список. Если не хватает каких-то конкретных типов — приноси issues, рассмотрим возможность это добавить.

Вторая проблема — отсутствие тайпингов для команд openAndWait и moveCursorTo. Это был человеческий фактор, просто забыли их запаблишить (уже поправили в 8.5.1).

Мы обсудили в команде и пришли к выводу, что подобные тесты на типы не помогли бы ни в первом случае, ни во втором. Во втором случае можно так же легко забыть дописать тесты на типы, как и просто дописать типы.

Правильным решением тут было бы генерировать доку API по тайпингам или наоборот. Это мы сделаем в соответствующем milestone, за прогрессом можно следить здесь: https://github.com/gemini-testing/hermione/milestone/3

Данное обращение закрываю, т.к. все вопросы отрезолвили.

hheimerd commented 5 months ago

В breaking changes 8 беты написано, что изменились экспорты, а поменялись глобальные типы. То есть ожидаешь, что просто изменился список экспортов, а поменялись еще и сами типы. Если бы знали, какие типы изменились, то было бы проще рассчитать время переезда на новую версию.