Skip to content

Commit ecfe228

Browse files
Dmitry Sharshakovkazupon
Dmitry Sharshakov
authored andcommitted
docs: update Russian translation (#1215)
* docs: update russian translation * style: format docs pages * chore(docs): typo
1 parent a523085 commit ecfe228

17 files changed

+160
-34
lines changed

Diff for: docs/ru/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,6 @@ Vue Test Utils — официальная библиотека модульно
8080
- [TransitionGroupStub](api/components/TransitionGroupStub.md)
8181
- [RouterLinkStub](api/components/RouterLinkStub.md)
8282
- [Селекторы](api/selectors.md)
83+
- [createWrapper](api/createWrapper.md)
8384
- [createLocalVue](api/createLocalVue.md)
8485
- [Конфигурация](api/config.md)

Diff for: docs/ru/api/config.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Vue Test Utils включает объект конфигурации для определения опций, используемых Vue Test Utils.
44

5-
### Конфигурация настроек Vue Test Utils
5+
### Настройки Vue Test Utils
66

77
### `stubs`
88

Diff for: docs/ru/api/createWrapper.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## createWrapper(node [, options])
2+
3+
- **Аргументы:**
4+
5+
- `{vm|HTMLElement} node`
6+
- `{Object} options`
7+
- `{Boolean} sync`
8+
- `{Boolean} attachedToDocument`
9+
10+
- **Возвращает:**
11+
12+
- `{Wrapper}`
13+
14+
- **Использование:**
15+
16+
`createWrapper` создает `Wrapper` для смонтированного экземпляра Vue или HTML-элемента.
17+
18+
```js
19+
import { createWrapper } from '@vue/test-utils'
20+
import Foo from './Foo.vue'
21+
22+
const Constructor = Vue.extend(Foo)
23+
const vm = new Constructor().$mount()
24+
const wrapper = createWrapper(vm)
25+
expect(wrapper.vm.foo).toBe(true)
26+
```

Diff for: docs/ru/api/options.md

+34-13
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,28 @@
22

33
Опции для `mount` и `shallowMount`. Объект опций может содержать как настройки монтирования Vue Test Utils, так и другие опции Vue.
44

5-
- [`context`](#context)
6-
- [`slots`](#slots)
7-
- [`scopedSlots`](#scopedslots)
8-
- [`stubs`](#stubs)
9-
- [`mocks`](#mocks)
10-
- [`localVue`](#localvue)
11-
- [`attachToDocument`](#attachtodocument)
12-
- [`propsData`](#propsdata)
13-
- [`attrs`](#attrs)
14-
- [`listeners`](#listeners)
15-
- [`parentComponent`](#parentcomponent)
16-
- [`provide`](#provide)
17-
- [`sync`](#sync)
5+
:::tip СОВЕТ
6+
Кроме опций, описанных ниже, объект `options` может содержать любую опцию, которую можно указать при вызове `new Vue ({ /* опции здесь */ })`.
7+
Эти опции будут объединены с существующими опциями компонента при монтировании с помощью `mount` / `shallowMount`
8+
9+
[См. другие опции в примере](#other-options)
10+
:::
11+
12+
- [Опции монтирования](#%D0%BE%D0%BF%D1%86%D0%B8%D0%B8-%D0%BC%D0%BE%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
13+
- [context](#context)
14+
- [slots](#slots)
15+
- [scopedSlots](#scopedslots)
16+
- [stubs](#stubs)
17+
- [mocks](#mocks)
18+
- [localVue](#localvue)
19+
- [attachToDocument](#attachtodocument)
20+
- [attrs](#attrs)
21+
- [propsData](#propsdata)
22+
- [listeners](#listeners)
23+
- [parentComponent](#parentcomponent)
24+
- [provide](#provide)
25+
- [sync](#sync)
26+
- [Другие опции](#%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5-%D0%BE%D0%BF%D1%86%D0%B8%D0%B8)
1827

1928
## context
2029

@@ -108,6 +117,16 @@ shallowMount(Component, {
108117

109118
Или вы можете использовать JSX. Если вы пишете JSX в методе, `this.$createElement` автоматически внедряется babel-plugin-transform-vue-jsx:
110119

120+
```js
121+
shallowMount(Component, {
122+
scopedSlots: {
123+
foo(props) {
124+
return <div>{props.text}</div>
125+
}
126+
}
127+
})
128+
```
129+
111130
## stubs
112131

113132
- Тип: `{ [name: string]: Component | boolean } | Array<string>`
@@ -190,6 +209,8 @@ expect(wrapper.vm.$route).toBeInstanceOf(Object)
190209

191210
Компонент будет прикрепляться к DOM при рендеринге, если установлено в `true`.
192211

212+
Если компонент прикреплен к DOM, вы должны вызвать `wrapper.destroy()` в конце вашего теста для того, чтобы удалить отрисованные элементы из документа и удалить экземпляр компонента.
213+
193214
## attrs
194215

195216
- Тип: `Object`

Diff for: docs/ru/api/wrapper/attributes.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
## attributes()
22

3-
Возвращает объект атрибута DOM-узла `Wrapper`.
3+
Возвращает объект атрибутов DOM-узла `Wrapper`. Если аргумент `key` присутствует, метод вернёт значение атрибута, заданного через `key`.
4+
5+
- **Аргументы:**
6+
7+
- `{string} key` **опционально**
48

59
- **Возвращает:** `{[attribute: string]: any}`
610

@@ -12,4 +16,5 @@ import Foo from './Foo.vue'
1216

1317
const wrapper = mount(Foo)
1418
expect(wrapper.attributes().id).toBe('foo')
19+
expect(wrapper.attributes('id')).toBe('foo')
1520
```

Diff for: docs/ru/api/wrapper/classes.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
Возвращает классы DOM-узла `Wrapper`.
44

5-
Возвращает массив имён классов.
5+
Возвращает массив имён классов. Либо `true`/`false` если передано имя класса.
6+
7+
- **Аргументы:**
8+
9+
- `{string} className` **опционально**
610

711
- **Возвращает:** `Array<{string}>`
812

@@ -14,4 +18,5 @@ import Foo from './Foo.vue'
1418

1519
const wrapper = mount(Foo)
1620
expect(wrapper.classes()).toContain('bar')
21+
expect(wrapper.classes('bar')).toBe(true)
1722
```

Diff for: docs/ru/api/wrapper/destroy.md

+4
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ mount({
1717
}).destroy()
1818
expect(spy.calledOnce).toBe(true)
1919
```
20+
21+
Если опция `attachToDocument` была `true` при монтировании, DOM элементы компонента будут также удалены из документа.
22+
23+
Для функциональных компонентов, `destroy` только удаляет отрисованные элементы DOM из документа.

Diff for: docs/ru/api/wrapper/html.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## html()
22

3-
Возвращает HTML `Wrapper` DOM-узла в виде строки.
3+
Возвращает HTML-код DOM-узла `Wrapper`а в виде строки.
44

55
- **Возвращает:** `{string}`
66

Diff for: docs/ru/api/wrapper/props.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
## props()
22

3-
Возвращает объект с входными параметрами `vm` для `Wrapper`.
3+
Возвращает объект с входными параметрами `vm` для `Wrapper`. Если `key` передан, метод вернёт значения свойства с именем `key`.
44

55
**Обратите внимание что Wrapper должен содержать экземпляр Vue.**
66

7+
- **Принимает:**
8+
9+
- `{string} key` **опйионально**
10+
711
- **Возвращает:** `{[prop: string]: any}`
812

913
- **Пример:**
@@ -18,4 +22,5 @@ const wrapper = mount(Foo, {
1822
}
1923
})
2024
expect(wrapper.props().bar).toBe('baz')
25+
expect(wrapper.props('bar')).toBe('baz')
2126
```

Diff for: docs/ru/api/wrapper/setChecked.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import { mount } from '@vue/test-utils'
1313
import Foo from './Foo.vue'
1414

1515
const wrapper = mount(Foo)
16-
const option = wrapper.find('input[type="radio"]')
17-
option.setChecked()
16+
const radioInput = wrapper.find('input[type="radio"]')
17+
radioInput.setChecked()
1818
```
1919

2020
- **Примечание:**

Diff for: docs/ru/api/wrapper/setValue.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import Foo from './Foo.vue'
1414

1515
const wrapper = mount(Foo)
1616

17-
const input = wrapper.find('input[type="text"]')
18-
input.setValue('some value')
17+
const textInput = wrapper.find('input[type="text"]')
18+
textInput.setValue('some value')
1919

2020
const select = wrapper.find('select')
2121
select.setValue('option value')

Diff for: docs/ru/guides/common-tips.md

+50
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,56 @@ expect(wrapper.emitted().foo[1]).toEqual([123])
5858

5959
Вы также можете получить массив событий в порядке их вызова с помощью [`wrapper.emittedByOrder()`](../api/wrapper/emittedByOrder.md).
6060

61+
### События дочерних компонентов
62+
63+
Вы можете создавать пользовательские события в дочерних компонентах получая доступ к экземпляру.
64+
65+
**Тестируемый компонент**
66+
67+
```html
68+
<template>
69+
<div>
70+
<child-component @custom="onCustom" />
71+
<p v-if="emitted">Emitted!</p>
72+
</div>
73+
</template>
74+
75+
<script>
76+
import ChildComponent from './ChildComponent'
77+
78+
export default {
79+
name: 'ParentComponent',
80+
components: { ChildComponent },
81+
data() {
82+
return {
83+
emitted: false
84+
}
85+
},
86+
methods: {
87+
onCustom() {
88+
this.emitted = true
89+
}
90+
}
91+
}
92+
</script>
93+
```
94+
95+
**Тест**
96+
97+
```js
98+
import { shallowMount } from '@vue/test-utils'
99+
import ParentComponent from '@/components/ParentComponent'
100+
import ChildComponent from '@/components/ChildComponent'
101+
102+
describe('ParentComponent', () => {
103+
it("displays 'Emitted!' when custom event is emitted", () => {
104+
const wrapper = shallowMount(ParentComponent)
105+
wrapper.find(ChildComponent).vm.$emit('custom')
106+
expect(wrapper.html()).toContain('Emitted!')
107+
})
108+
})
109+
```
110+
61111
### Манипулирование состоянием компонента
62112

63113
Вы можете напрямую манипулировать состоянием компонента с помощью методов `setData` или `setProps` на обёртке:

Diff for: docs/ru/guides/dom-events.md

+8-2
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,17 @@ wrapper.trigger('click', { button: 0 })
4141
<button class="no" @click="callNo">No</button>
4242
</div>
4343
</template>
44+
4445
<script>
4546
export default {
4647
name: 'YesNoComponent',
48+
4749
props: {
4850
callMe: {
4951
type: Function
5052
}
5153
},
54+
5255
methods: {
5356
callYes() {
5457
this.callMe('yes')
@@ -69,7 +72,7 @@ import { mount } from '@vue/test-utils'
6972
import sinon from 'sinon'
7073

7174
describe('Click event', () => {
72-
it('Нажатие на кнопке yes вызывает наш метод с аргументом "yes"', () => {
75+
it('Нажатие на кнопку yes вызывает наш метод с аргументом "yes"', () => {
7376
const spy = sinon.spy()
7477
const wrapper = mount(YesNoComponent, {
7578
propsData: {
@@ -93,6 +96,7 @@ describe('Click event', () => {
9396
<template>
9497
<input type="text" @keydown.prevent="onKeydown" v-model="quantity" />
9598
</template>
99+
96100
<script>
97101
const KEY_DOWN = 40
98102
const KEY_UP = 38
@@ -104,6 +108,7 @@ describe('Click event', () => {
104108
quantity: 0
105109
}
106110
},
111+
107112
methods: {
108113
increment() {
109114
this.quantity += 1
@@ -129,6 +134,7 @@ describe('Click event', () => {
129134
}
130135
}
131136
},
137+
132138
watch: {
133139
quantity: function(newValue) {
134140
this.$emit('input', newValue)
@@ -150,7 +156,7 @@ describe('Тестирование событий клавиш', () => {
150156
expect(wrapper.vm.quantity).toBe(0)
151157
})
152158

153-
it('Клавиша вверх устанавливает quantity равным 1', () => {
159+
it('Клавиша вверх увеличивает quantity на 1', () => {
154160
const wrapper = mount(QuantityComponent)
155161
wrapper.trigger('keydown.up')
156162
expect(wrapper.vm.quantity).toBe(1)

Diff for: docs/ru/guides/testing-single-file-components-with-jest.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -182,18 +182,20 @@ test('renders correctly', () => {
182182
})
183183
```
184184

185+
Мы можем улучшить сохраненный снимок с помощью пользовательского сериализатора:
186+
185187
```bash
186188
npm install --save-dev jest-serializer-vue
187189
```
188190

189-
Затем добавьте конфигурацию в `package.json`:
191+
Затем настройте `jest-serializer-vue` в `package.json`:
190192

191193
```json
192194
{
193195
// ...
194196
"jest": {
195197
// ...
196-
// serializer for snapshots
198+
// сериализатор для снимков
197199
"snapshotSerializers": ["jest-serializer-vue"]
198200
}
199201
}

Diff for: docs/ru/guides/testing-single-file-components-with-mocha-webpack.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Тестирование однофайловых компонентов с Mocha + webpack
1+
## Тестирование однофайловых компонентов с Mocha и webpack
22

33
> Пример проекта для этой конфигурации доступен на [GitHub](https://github.com/vuejs/vue-test-utils-mocha-webpack-example).
44

Diff for: docs/ru/guides/using-with-typescript.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ $ vue create hello-world
2626
Если вы хотите получить более подробное руководство по настройке Vue с помощью TypeScript, ознакомьтесь с [руководством для начинающих по TypeScript во Vue](https://github.com/Microsoft/TypeScript-Vue-Starter).
2727
:::
2828

29-
Следующий шаг — добавить Jest к проекту.
29+
Следующий шаг — добавить Jest в проект.
3030

3131
### Настройка Jest
3232

@@ -90,7 +90,7 @@ npm install --save-dev vue-jest
9090
$ npm install --save-dev ts-jest
9191
```
9292

93-
Затем нам нужно указать Jest обработать тестовые файлы TypeScript с помощью `ts-jest`, добавив запись в `jest.transform` в `package.json`:
93+
Затем нам нужно указать Jest обрабатывать тестовые файлы TypeScript с помощью `ts-jest`, добавив запись в `jest.transform` в `package.json`:
9494

9595
```json
9696
{
@@ -125,7 +125,7 @@ $ npm install --save-dev ts-jest
125125
}
126126
```
127127

128-
Jest рекомендует создать каталог `__tests__` рядом с тестируемым кодом, но не стесняйтесь структурировать ваши тесты по своему усмотрению. Просто остерегайтесь того, что Jest создаст каталог `__snapshots__` рядом с тестовыми файлами, которые выполняют тестирование моментальными снимками.
128+
Jest рекомендует создать каталог `__tests__` рядом с тестируемым кодом, но не стесняйтесь структурировать ваши тесты по своему усмотрению. Просто помните, что Jest создаст каталог `__snapshots__` рядом с тестовыми файлами, которые выполняют тестирование моментальными снимками.
129129

130130
### Написание модульного теста
131131

@@ -139,7 +139,7 @@ import { shallowMount } from '@vue/test-utils'
139139
import HelloWorld from '../HelloWorld.vue'
140140

141141
describe('HelloWorld.vue', () => {
142-
test('renders props.msg when passed', () => {
142+
test('отрисовывает props.msg, если они переданы', () => {
143143
const msg = 'new message'
144144
const wrapper = shallowMount(HelloWorld, {
145145
propsData: { msg }

0 commit comments

Comments
 (0)