Skip to content

Commit 2fd0867

Browse files
docs: translate act.md to Русский
1 parent 2958f53 commit 2fd0867

1 file changed

Lines changed: 32 additions & 32 deletions

File tree

  • src/content/reference/react

src/content/reference/react/act.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,32 @@ title: act
44

55
<Intro>
66

7-
`act` is a test helper to apply pending React updates before making assertions.
7+
`act` — это вспомогательная функция для тестирования, которая позволяет применить ожидающие обновления React перед выполнением утверждений.
88

99
```js
1010
await act(async actFn)
1111
```
1212

1313
</Intro>
1414

15-
To prepare a component for assertions, wrap the code rendering it and performing updates inside an `await act()` call. This makes your test run closer to how React works in the browser.
15+
Чтобы подготовить компонент к утверждениям, оберните код, который его рендерит и выполняет обновления, внутри вызова `await act()`. Это позволит вашему тесту работать ближе к тому, как React функционирует в браузере.
1616

1717
<Note>
18-
You might find using `act()` directly a bit too verbose. To avoid some of the boilerplate, you could use a library like [React Testing Library](https://testing-library.com/docs/react-testing-library/intro), whose helpers are wrapped with `act()`.
18+
Вы можете найти использование `act()` напрямую немного многословным. Чтобы избежать некоторого шаблонного кода, вы можете использовать библиотеку, такую как [React Testing Library](https://testing-library.com/docs/react-testing-library/intro), чьи вспомогательные функции обёрнуты в `act()`.
1919
</Note>
2020

2121

2222
<InlineToc />
2323

2424
---
2525

26-
## Reference {/*reference*/}
26+
## Справочник {/*reference*/}
2727

2828
### `await act(async actFn)` {/*await-act-async-actfn*/}
2929

30-
When writing UI tests, tasks like rendering, user events, or data fetching can be considered as “units” of interaction with a user interface. React provides a helper called `act()` that makes sure all updates related to these “units” have been processed and applied to the DOM before you make any assertions.
30+
При написании UI-тестов такие задачи, как рендеринг, пользовательские события или получение данных, можно рассматривать как «единицы» взаимодействия с пользовательским интерфейсом. React предоставляет вспомогательную функцию `act()`, которая гарантирует, что все обновления, связанные с этими «единицами», были обработаны и применены к DOM перед выполнением каких-либо утверждений.
3131

32-
The name `act` comes from the [Arrange-Act-Assert](https://wiki.c2.com/?ArrangeActAssert) pattern.
32+
Название `act` происходит от паттерна [Arrange-Act-Assert](https://wiki.c2.com/?ArrangeActAssert).
3333

3434
```js {2,4}
3535
it ('renders with button disabled', async () => {
@@ -42,25 +42,25 @@ it ('renders with button disabled', async () => {
4242

4343
<Note>
4444

45-
We recommend using `act` with `await` and an `async` function. Although the sync version works in many cases, it doesn't work in all cases and due to the way React schedules updates internally, it's difficult to predict when you can use the sync version.
45+
Мы рекомендуем использовать `act` с `await` и асинхронной функцией. Хотя синхронная версия работает во многих случаях, она не работает во всех, и из-за того, как React планирует обновления внутренне, трудно предсказать, когда вы можете использовать синхронную версию.
4646

47-
We will deprecate and remove the sync version in the future.
47+
В будущем мы объявим синхронную версию устаревшей и удалим её.
4848

4949
</Note>
5050

51-
#### Parameters {/*parameters*/}
51+
#### Параметры {/*parameters*/}
5252

53-
* `async actFn`: An async function wrapping renders or interactions for components being tested. Any updates triggered within the `actFn`, are added to an internal act queue, which are then flushed together to process and apply any changes to the DOM. Since it is async, React will also run any code that crosses an async boundary, and flush any updates scheduled.
53+
* `async actFn`: Асинхронная функция, оборачивающая рендеринг или взаимодействия для тестируемых компонентов. Любые обновления, инициированные внутри `actFn`, добавляются во внутреннюю очередь `act`, которая затем обрабатывается вместе для обработки и применения любых изменений к DOM. Поскольку она асинхронна, React также будет выполнять любой код, который пересекает асинхронную границу, и обрабатывать любые запланированные обновления.
5454

55-
#### Returns {/*returns*/}
55+
#### Возвращаемое значение {/*returns*/}
5656

57-
`act` does not return anything.
57+
`act` ничего не возвращает.
5858

59-
## Usage {/*usage*/}
59+
## Использование {/*usage*/}
6060

61-
When testing a component, you can use `act` to make assertions about its output.
61+
При тестировании компонента вы можете использовать `act` для утверждений о его выводе.
6262

63-
For example, let’s say we have this `Counter` component, the usage examples below show how to test it:
63+
Например, предположим, у нас есть компонент `Counter`, примеры использования ниже показывают, как его протестировать:
6464

6565
```js
6666
function Counter() {
@@ -84,9 +84,9 @@ function Counter() {
8484
}
8585
```
8686

87-
### Rendering components in tests {/*rendering-components-in-tests*/}
87+
### Рендеринг компонентов в тестах {/*rendering-components-in-tests*/}
8888

89-
To test the render output of a component, wrap the render inside `act()`:
89+
Чтобы протестировать вывод рендеринга компонента, оберните рендеринг внутри `act()`:
9090

9191
```js {10,12}
9292
import {act} from 'react';
@@ -97,7 +97,7 @@ it('can render and update a counter', async () => {
9797
container = document.createElement('div');
9898
document.body.appendChild(container);
9999

100-
//Render the component inside act().
100+
//Рендерим компонент внутри act().
101101
await act(() => {
102102
ReactDOMClient.createRoot(container).render(<Counter />);
103103
});
@@ -109,13 +109,13 @@ it('can render and update a counter', async () => {
109109
});
110110
```
111111

112-
Here, we create a container, append it to the document, and render the `Counter` component inside `act()`. This ensures that the component is rendered and its effects are applied before making assertions.
112+
Здесь мы создаём контейнер, добавляем его в документ и рендерим компонент `Counter` внутри `act()`. Это гарантирует, что компонент будет отрендерен и его эффекты будут применены перед выполнением утверждений.
113113

114-
Using `act` ensures that all updates have been applied before we make assertions.
114+
Использование `act` гарантирует, что все обновления будут применены перед выполнением утверждений.
115115

116-
### Dispatching events in tests {/*dispatching-events-in-tests*/}
116+
### Генерация событий в тестах {/*dispatching-events-in-tests*/}
117117

118-
To test events, wrap the event dispatch inside `act()`:
118+
Чтобы протестировать события, оберните генерацию события внутри `act()`:
119119

120120
```js {14,16}
121121
import {act} from 'react';
@@ -130,7 +130,7 @@ it.only('can render and update a counter', async () => {
130130
ReactDOMClient.createRoot(container).render(<Counter />);
131131
});
132132

133-
//Dispatch the event inside act().
133+
//Генерируем событие внутри act().
134134
await act(async () => {
135135
button.dispatchEvent(new MouseEvent('click', { bubbles: true }));
136136
});
@@ -142,36 +142,36 @@ it.only('can render and update a counter', async () => {
142142
});
143143
```
144144

145-
Here, we render the component with `act`, and then dispatch the event inside another `act()`. This ensures that all updates from the event are applied before making assertions.
145+
Здесь мы рендерим компонент с помощью `act`, а затем генерируем событие внутри другого `act()`. Это гарантирует, что все обновления от события будут применены перед выполнением утверждений.
146146

147147
<Pitfall>
148148

149-
Don’t forget that dispatching DOM events only works when the DOM container is added to the document. You can use a library like [React Testing Library](https://testing-library.com/docs/react-testing-library/intro) to reduce the boilerplate code.
149+
Не забывайте, что генерация DOM-событий работает только тогда, когда DOM-контейнер добавлен в документ. Вы можете использовать библиотеку, такую как [React Testing Library](https://testing-library.com/docs/react-testing-library/intro), чтобы уменьшить количество шаблонного кода.
150150

151151
</Pitfall>
152152

153-
## Troubleshooting {/*troubleshooting*/}
153+
## Устранение неполадок {/*troubleshooting*/}
154154

155-
### I'm getting an error: "The current testing environment is not configured to support act"(...)" {/*error-the-current-testing-environment-is-not-configured-to-support-act*/}
155+
### Я получаю ошибку: "The current testing environment is not configured to support act"(...)" {/*error-the-current-testing-environment-is-not-configured-to-support-act*/}
156156

157-
Using `act` requires setting `global.IS_REACT_ACT_ENVIRONMENT=true` in your test environment. This is to ensure that `act` is only used in the correct environment.
157+
Использование `act` требует установки `global.IS_REACT_ACT_ENVIRONMENT=true` в вашей тестовой среде. Это сделано для того, чтобы `act` использовался только в правильной среде.
158158

159-
If you don't set the global, you will see an error like this:
159+
Если вы не установите глобальную переменную, вы увидите ошибку, подобную этой:
160160

161161
<ConsoleBlock level="error">
162162

163163
Warning: The current testing environment is not configured to support act(...)
164164

165165
</ConsoleBlock>
166166

167-
To fix, add this to your global setup file for React tests:
167+
Чтобы исправить это, добавьте следующее в ваш файл глобальной настройки для React-тестов:
168168

169169
```js
170170
global.IS_REACT_ACT_ENVIRONMENT=true
171171
```
172172

173173
<Note>
174174

175-
In testing frameworks like [React Testing Library](https://testing-library.com/docs/react-testing-library/intro), `IS_REACT_ACT_ENVIRONMENT` is already set for you.
175+
В таких фреймворках для тестирования, как [React Testing Library](https://testing-library.com/docs/react-testing-library/intro), `IS_REACT_ACT_ENVIRONMENT` уже установлен для вас.
176176

177-
</Note>
177+
</Note>

0 commit comments

Comments
 (0)