-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-cases.yml
400 lines (376 loc) · 20.9 KB
/
test-cases.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
---
- summary: |
Проверка регистрации нового пользователя
requirement: |
У пользователя должна быть возможность зарегистрироваться и авторизоваться в системе
prerequisites:
Нет зарегистрированного пользователя с тем же email
Открыт сайт https://codebattle.hexlet.io/
test-data: |
no required
steps:
- Нажать кнопку "Sign up"
- Ввести в поля формы корректные данные (никнейм, email, пароль)
- Нажать кнопку "Sumbit".
expected-result: |
Пользователь успешно зарегистрирован и перенаправлен на главную страницу
- summary: |
Проверка авторизации существующего пользователя
requirement: |
У пользователя должна быть возможность зарегистрироваться и авторизоваться в системе
prerequisites:
Пользователь уже зарегистрирован на сайте
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать кнопку "Sign in"
- Ввести в поля формы корректные данные (email, пароль)
- Нажать кнопку "Sumbit".
expected-result: |
Пользователь успешно авторизован и перенаправлен на главную страницу
- summary: |
Проверка авторизации через GitHub
requirement: |
Должна быть возможность авторизации через GitHub
prerequisites:
Пользователь не зарегистрирован на сайте
Пользователь авторизован на Github
Открыт сайт https://codebattle.hexlet.io/
test-data: |
no required
steps:
- Нажать кнопку "Sign up"
- Нажать кнопку "Sign up with GitHub"
- Подтвердить авторизацию.
expected-result: |
Пользователь успешно авторизован и перенаправлен на главную страницу
- summary: |
Проверка возможности создания игры с ботом
requirement: |
Должна быть возможность создать игру как с ботом, так и с другими игроками
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать кнопку "Create a game"
- Выбрать любой уровень сложности
- Выбрать тип игры (Game Type) - с ботом (With a bot)
- Выбрать любое задание
- Нажать кнопку "Create battle"
expected-result: |
Начинается игра с ботом по выбраному заданию
- summary: |
Проверка возможности создания игры с другими игроками
requirement: |
Должна быть возможность создать игру как с ботом, так и с другими игроками
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать кнопку "Create a game"
- Выбрать любой уровень сложности
- Выбрать тип игры (Game Type) - с другим игроком (With another user)
- Выбрать любое задание
- Нажать кнопку "Create battle"
expected-result: |
Откроется лобби с выбранным заданием, с возможностью подключения другого игрок
- summary: |
Проверка возможности создания приватной игры
requirement: |
Должна быть возможность создать как приватную игру с конкретным игроком, так и публичную
prerequisites:
Открыт сайт https://codebattle.hexlet.io/
Есть второй игрок, готовый принять приглашение и начать игру
Оба пользователя авторизованы на сайте
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать кнопку "Create a game"
- Выбрать любой уровень сложности
- Выбрать тип игры (Game Type) - с другом (With a friend)
- Выбрать в выпадающем списке противника (или ввести имя вручную)
- Выбрать любое задание
- Нажать кнопку "Create invite"
- Второй игрок принимает приглашение
expected-result: |
Начинается игра с выбранным заданием, с пользователем которому отправили приглашение.
- summary: |
Проверка возможности принятия приглашения в приватную игру
requirement: |
Должна быть возможность создать как приватную игру с конкретным игроком, так и публичную
prerequisites:
Открыт сайт https://codebattle.hexlet.io/
Есть второй игрок, готовый создать игру и отправить приглашение
Оба пользователя авторизованы на сайте
test-data: |
email: [email protected]
password: examplepass123
steps:
- Второй игрок нажимает кнопку "Create a game"
- Второй игрок выбирает любой уровень сложности
- Второй игрок выбирает тип игры (Game Type) - с другом (With a friend)
- Второй игрок выбирает в выпадающем списке нас (или вводит имя вручную)
- Второй игрок выбирает любое задание
- Второй игрок нажимает кнопку "Create invite"
- Мы получаем приглашение и принимаем его
expected-result: |
Начинается игра по выбраному вторым игроком заданию, с пользователем который отправил нам приглашение.
- summary: |
Проверка возможности отклонения приглашения в приватную игру
requirement: |
Должна быть возможность принимать либо отклонять приглашения в приватные игры.
prerequisites:
Открыт сайт https://codebattle.hexlet.io/
Есть второй игрок, готовый создать игру и отправить приглашение
Оба пользователя авторизованы на сайте
test-data: |
email: [email protected]
password: examplepass123
steps:
- Второй игрок нажимает кнопку "Create a game"
- Второй игрок выбирает любой уровень сложности
- Второй игрок выбирает тип игры (Game Type) - с другом (With a friend)
- Второй игрок выбирает в выпадающем списке нас (или вводит имя вручную)
- Второй игрок выбирает любое задание
- Второй игрок нажимает кнопку "Create invite"
- Мы получаем приглашение и отклоняем его
expected-result: |
Игра не начинается, второй игрок возвращается на страницу создания игры.
- summary: |
Проверка возможности присоединения к открытой игре
requirement: |
Должна быть возможность присоединиться к открытой игре
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Есть хотя бы одна открытая игра, доступная для присоединения
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать кнопку "Lobby"
- Выбрать любую игру, доступную для присоединения.
- Нажать кнопку "Fight"
expected-result: |
Начинается игра по выбранному заданию с пользователем, открывшим лобби.
- summary: |
Проверка соответствия задания у игроков
requirement: |
Оба игрока должны получать одинаковое задание.
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра с любым противником по любому заданию
test-data: |
email: [email protected]
password: examplepass123
steps:
- Проверить задание соперника на соответствие нашему.
expected-result: |
Оба соперника получили одинаковое задание.
- summary: |
Проверка возможности переключения языка в задании
requirement: |
Задания должны даваться на двух языках - русском и английском
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра с любым противником на любой сложности
test-data: |
email: [email protected]
password: examplepass123
steps:
- После начала игры нажать кнопку смены языка.
- Выбрать Русский.
expected-result: |
Описание задания изменилось на русский язык.
- summary: |
Проверка правильности работы автотестов
requirement: |
Решение задания должно быть представлено в виде кода.
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра с любым противником на любой сложности
test-data: |
email: [email protected]
password: examplepass123
steps:
- Ввести значение "A=wl"
- Нажать кнопку проверки
expected-result: |
Автотесты вернут ошибку, решение не подходит.
- summary: |
Проверка возможности видеть процесс написания кода противником
requirement: |
Во время игры игроки должны видеть процесс написания кода соперником в реальном времени.
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра со вторым игроком по любому заданию
test-data: |
email: [email protected]
password: examplepass123
steps:
- Второй игрок вводит любые значения в своем рабочем поле.
- Второй игрок нажимает кнопку проверки.
expected-result: |
Процесс написания кода противником и результаты его тестов видны и отображаются в реальном времени.
- summary: |
Проверка правильности присвоения победы
requirement: |
Победителем считается первый игрок, решение которого удовлетворило автотесты.
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра с заданием 'rect_area' c любым противником
test-data: |
email: [email protected]
password: examplepass123
task: rect_area
language: JavaScript
solution:
const _ = require("lodash");
const R = require("rambda");
const solution = (width, length) => {
return width * length;
};
module.exports = solution;
steps:
- Завершить задание быстрее противника
- Нажать кнопку проверки
expected-result: |
Победа присваивается корректно, начисляются очки рейтинга за победу.
- summary: |
Проверка правильности присвоения ничьи
requirement: |
Если оба игрока не справляются с задачей в установленное время - игра завершается ничьей
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Есть второй игрок, с которым начата любая игра
test-data: |
email: [email protected]
password: examplepass123
steps:
- Дождаться завершения таймера у обоих игроков
expected-result: |
Игра заканчивается ничьей, очки рейтинга не начисляются никому
- summary: |
Проверка возможности сдачи игры
requirement: |
Если оба игрока не справляются с задачей в установленное время - игра завершается ничьей
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра с любым игроком по любому заданию
test-data: |
email: [email protected]
password: examplepass123
steps:
- В рабочем поле нажать кнопку дополнительных опций (...)
- Нажать кнопку "Give up"
- Подтвердить свое решение
expected-result: |
Игра заканчивается, победа присваивается противнику.
- summary: |
Проверка возможности просмотра записей матчей
requirement: |
Завершенные игры должны быть доступны в записи
prerequisites:
Пользователь авторизован на сайте
Есть хотя бы одна завершенная игра
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать на кнопку с именем пользователя в шапке сайта
- Нажать кнопку "Мой профиль" (My profile)
- Нажать кнопку "Завершенные игры" (Completed games)
- Выбрать любую игру и нажать кнопку "Show"
expected-result: |
Открывается проигрыватель и воспроизводится запись матча.
- summary: |
Проверка работы таблицы лидеров
requirement: |
На основе рейтинга должна составляться таблица лидеров с разными временными отрезками (неделя, месяц, за все время)
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать на кнопку с именем пользователя в шапке сайта
- Нажать кнопку "Рейтинг пользователей" (Users raiting)
- Нажать на кнопки выбора различных категорий (неделя, месяц, за все время)
expected-result: |
Открывается таблица лидеров за выбраный период, при переключении периода таблица выбирает соответствующую категорию
- summary: |
Проверка работы внутриигрового чата
requirement: |
Во время игры должна быть возможность общаться с соперником и зрителями в чате
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
Начата игра по любому заданию с любым игроком
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать на поле чата
- Ввести любое сообщение и отправить
expected-result: |
Сообщение отображается в чате, задержка между отправкой и отображение минимальная.
- summary: |
Проверка кроссбраузерности сайта
requirement: |
Сайт должен быть протестирован на совместимость с последними версиями браузеров
prerequisites:
Пользователь авторизован на сайте
Установлены браузеры Firefox, Safari, Chrome
Открыт браузер Chrome
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Проверить отображение элементов интерфейса на главное странице
- Нажать кнопку "Create a game"
- Перейти на вкладку Tournaments и проверить отображение.
- Перейти на вкладку History и проверить отображение истории.
- Проверить весь функционал меню который всплывает при нажатии на иконку пользователя.
- Создать новую игру с ботом и проверить отображение и работоспособность матча с возможностью его завершения.
- Повторить шаги 1-6 для браузеров Firefox и Safari.
expected-result: |
Сайт работает корректно на всех указаных браузерах, отсутствуют ошибки с отображением и функционалом
- summary: |
Проверка отображения сайта на мобильных устройствах
requirement: |
Сайт должен быть удобным на мобильном устройстве
prerequisites:
Пользователь авторизован на сайте
Открыт сайт https://codebattle.hexlet.io/
test-data: |
email: [email protected]
password: examplepass123
steps:
- Нажать клавишу "F12" и открыть DevTools
- В поле выбора устройства выбрать любое мобильное устройство, например iPhone 12 Pro
- Нажать кнопку "Create a game"
- Выбрать любой уровень сложности
- Выбрать любой тип игры
- Выбрать любое задание
- Нажать кнопку "Create battle"
expected-result: |
Сайт работает корректно на мобильных устройствах, весь функционал работает корректно, отстутствуют ошибки верстки.