Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(storybook): add documentation about storybook #38

Merged
merged 1 commit into from
Oct 10, 2024
Merged

Conversation

sipayRT
Copy link
Member

@sipayRT sipayRT commented Sep 13, 2024

No description provided.

Copy link

github-actions bot commented Sep 13, 2024

✅ Successfully deployed static

Copy link
Member

@shadowusr shadowusr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Статьи топ! 🔥

const searchInput = await browser.$(".DocSearch");
await searchInput.click();

// taking screenshot of a previously found item (from the element context)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Конечно же не критично, но в других статьях у нас комменты на русском в русских статьях и на английском в английских. Тем более что ты не выносишь этот код в отдельный файл, тогда почему бы не делать на языке статьи

Если в Вашем проекте используется Storybook версии 6.x, то в настройках Storybook необходимо включить сохранение json-файла с Вашими историями:

```typescript
// .storybook/main.js
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь и везде далее — не критично, но есть специальное поле, которое позволяет очень красивенько рендерить название файла как здесь: https://testplane-ci.website.yandexcloud.net/testplane-docs/website-static/10848702025-153-1/docs/v8/config/browsers/#setup

Для этого надо написать typescript title=".storybook/main.js"


# Скриншотное тестирование со Storybook

[Storybook][storybook] - это инструмент для разработки пользовательских интерфейсов на основе компонентов. Он позволяет разработчикам независимо визуализировать компоненты в различных состояниях в изолированной от остальных компонентов среде.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

, пожалуйста =)

```

<Admonition type="warning">
При добавлении testplane-тестов расширение Ваших story-файлов должно быть `.js` или `.ts`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не критично: было бы прикольно написать тут причину, я вот уже не помню например в чем дело. "tsx/jsx файлы сейчас не поддерживаются, но мы скоро их добавим" — сразу было бы супер понятнее.


## Параметры конфигурации плагина

<table>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А не стоит ли унести справочную информацию на страницу плагина в plugins?

Мне кажется прикольно если эта статья является практическим гайдом, как пользоваться testplane+storybook, а прям API мы же обычно описываем отдельно. Можно оставить ссылку просто.

@@ -0,0 +1,56 @@
# Визуальное тестирование

В testplane реализовано визуальное тестирование, с помощью которого пользователь может проверить визуальные изменения отдельного компонента, вьюпорта или всей страницы целиком.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут, конечно, хочется картинку, чтобы понимать как это выглядит в UI с первого взгляда. Но можно и позже добавить, когда будет new UI

date: 2024-09-11T13:00
---

[Storybook][storybook] - это инструмент для разработки пользовательских интерфейсов на основе компонентов. Он позволяет разработчикам независимо визуализировать компоненты в различных состояниях в изолированной от остальных компонентов среде.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут сломались ссылки =(

[Storybook][storybook] - это инструмент для разработки пользовательских интерфейсов на основе компонентов. Он позволяет разработчикам независимо визуализировать компоненты в различных состояниях в изолированной от остальных компонентов среде.
Такой "шоурум" идеально подходит для скриншотного тестирования ваших компонентов, т.к. за счет этой изолированной среды такие тесты получаются в разы стабильнее и быстрее, чем вариант с e2e.

С помощью плагина [@testplane/storybook][testplane-storybook] предоставляется возможность автоматически проверять изменения ваших компонентов с помощью скриншотного тестирования без единой строчки кода теста.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно добавить <!-- truncate --> в точку, где можно обрезать превью поста. Сейчас пост отображается целиком: https://testplane-ci.website.yandexcloud.net/testplane-docs/website-static/10848702025-153-1/blog/

buildStoriesJson: true,
},
};
```
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Где-то в конце пошагового руководства не хватает ссылки на пример в нашей репе. Или я не увидел. В блоге есть, тут нет

date: 2024-09-11T13:00
---

[Storybook][storybook] - это инструмент для разработки пользовательских интерфейсов на основе компонентов. Он позволяет разработчикам независимо визуализировать компоненты в различных состояниях в изолированной от остальных компонентов среде.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В целом честно говоря не очень понятно, в чем прикол поста в блоге, если он по сути просто скопированные 2 абзаца из статьи в доке. Точно ли он нужен в таком виде?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

идея в том, чтобы в блоге подсвечивать какие-то крупные обновления в документации. если оставить только новый раздел, то его можно просто не заметить. но если это будет в виде статьи, то там сразу видно, что появилось что-то новое (идея была именно в том, чтобы подсветить новую статью)

В testplane реализовано визуальное тестирование, с помощью которого пользователь может проверить визуальные изменения отдельного компонента, вьюпорта или всей страницы целиком.
Для анализа тестов, сохранения/обновления измененных изображений и запуска тестов рекомендуется использовать плагин [html-reporter][html-reporter], который предоставляет удобный UI для всех действий.

![Html-report](/img/docs/html-reporter/html-reporter.overview.png)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут скриншот немного странный получился у него внизу дофига белого и потом полоса желтая. В итоге выглядит как будто это полоса разделитель какой-то.


Для скринштных проверок Testplane предоставляет команду `assertView`, которая позволяет сделать скриншот конкретного элемента или всего вьюпорта.
При вызове команды `assertView` осуществляется поиск нужного элемента на странице с его автоматическим ожиданием. По умолчанию перед снятием скриншота на странице будет отключена анимация, чтобы исключить в будущем нестабильность теста из-за изменяющегося состояния элемента.
После снятия скриншота будет произведено сравнение полученного изображения с эталонным. Если эталонного изображения еще не существует, то его необходимо сохранить с помощью UI html-reporter или CLI-опции `--update-refs`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может тут на UI html-reporter тоже ссылку сделать? Я бы на месте юзера сразу хотел бы посмотреть как там снять их можно.


# Скриншотное тестирование со Storybook

[Storybook][storybook] — это инструмент для разработки пользовательских интерфейсов на основе компонентов. Он позволяет разработчикам независимо визуализировать компоненты в различных состояниях в изолированной от остальных компонентов среде.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может вместо "визуализировать" заюзать "рендерить"?

Такой "шоурум" идеально подходит для скриншотного тестирования ваших компонентов, т.к. за счет этой изолированной среды такие тесты получаются в разы стабильнее и быстрее, чем вариант с e2e.

С помощью плагина [@testplane/storybook][testplane-storybook] предоставляется возможность автоматически проверять изменения ваших компонентов с помощью скриншотного тестирования.
Вам достаточно описать ваш компонент в `Storybook`, а `testplane` при запуске автоматически сгенерит все необходимые тесты, прогонит их в нужных браузерах и предоставит визуальный отчет для обновления скриншотов.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А зачем storybook и testplane в кавычках? Это же просто название инструмента. Я бы написал без кавычек и с большой буквы.

В Вашем проекте уже могут быть настроены другие типы тестирования, запускающиеся с помощью `testplane`. Чтобы не смешивать сущности, мы рекомендуем для storybook-тестов использовать отдельный конфиг и указывать его при запуске тестов.

```bash
npx testplane --storybook --config .testplane.storybook.conf.ts
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно было бы сразу в новом формате написать - testplane.storybook.config.ts

[storybook]: https://storybook.js.org
[testplane-storybook]: https://github.com/gemini-testing/testplane-storybook
[play-function]: https://storybook.js.org/docs/writing-stories/play-function
[example]: https://github.com/gemini-testing/testplane/examples/storybook-autoscreenshots
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У тебя тут ссылка некорректная. Должно быть так - https://github.com/gemini-testing/testplane/tree/master/examples/storybook-autoscreenshots

@sipayRT sipayRT merged commit d012d1d into master Oct 10, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants