Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
tests
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zarina
tests
Commits
a7c1a3aa
Commit
a7c1a3aa
authored
Aug 17, 2021
by
zarina
🌊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ACP-56 написала тесты на регистрацию, уведомления, подтверждение
parent
453a0d7b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
221 additions
and
89 deletions
+221
-89
auth.feature
features/auth.feature
+13
-14
auth_test.js
tests/auth_test.js
+4
-3
courses_test.js
tests/courses_test.js
+133
-33
profile_test.js
tests/profile_test.js
+42
-39
users_test.js
tests/users_test.js
+29
-0
No files found.
features/auth.feature
View file @
a7c1a3aa
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
Функция
:
Авторизация/Аутентификация
Функция
:
Авторизация/Аутентификация
# Сценарий: Успешный логин и логаут
# Сценарий: Успешный логин и логаут
# Допустим я захожу на страницу 'login'
# Допустим я захожу на страницу 'login'
# Если я ввожу "
rina.saif221@mail.ru
" в поле "email"
# Если я ввожу "
qwe@qwe.qwe
" в поле "email"
# И я ввожу "1
23456ttt
" в поле "password"
# И я ввожу "1
qaz@WSX29
" в поле "password"
# И я нажимаю на кнопку "login_btn"
# И я нажимаю на кнопку "login_btn"
# И я жду 3 секунды
# И я жду 3 секунды
# Затем я захожу на страницу 'login'
# Затем я захожу на страницу 'login'
...
@@ -13,15 +13,15 @@
...
@@ -13,15 +13,15 @@
# И я захожу на страницу 'login'
# И я захожу на страницу 'login'
# То я вижу текст 'Вход'
# То я вижу текст 'Вход'
#
#
# Сценарий: Неправильный логин или пароль
#
#
Сценарий: Неправильный логин или пароль
# Допустим я захожу на страницу 'login'
#
#
Допустим я захожу на страницу 'login'
# Если я ввожу "admin@mail.ru" в поле "email"
#
#
Если я ввожу "admin@mail.ru" в поле "email"
# И я ввожу "1" в поле "password"
#
#
И я ввожу "1" в поле "password"
# Затем я нажимаю на кнопку "login_btn"
#
#
Затем я нажимаю на кнопку "login_btn"
# Тогда я вижу текст "Ошибка: Неверный email или пароль"
#
#
Тогда я вижу текст "Ошибка: Неверный email или пароль"
# Если я нажимаю на кнопку "login_btn"
#
#
Если я нажимаю на кнопку "login_btn"
# И я нажимаю на кнопку "login_btn"
#
#
И я нажимаю на кнопку "login_btn"
# То я вижу текст "Ошибка: Вы трижды ввели неправильный email или пароль. Повторите попытку через 30 минут"
#
#
То я вижу текст "Ошибка: Вы трижды ввели неправильный email или пароль. Повторите попытку через 30 минут"
#
#
# Сценарий: Валдиация фронт
# Сценарий: Валдиация фронт
# Допустим я захожу на страницу 'login'
# Допустим я захожу на страницу 'login'
...
@@ -37,11 +37,10 @@
...
@@ -37,11 +37,10 @@
#
#
# Сценарий: Восстановление пароля, успешная отправка письма
# Сценарий: Восстановление пароля, успешная отправка письма
# Допустим я захожу на страницу '/reset-password'
# Допустим я захожу на страницу '/reset-password'
# И я ввожу "
rina.saif221@gmail
.com" в поле "email"
# И я ввожу "
admin@admin
.com" в поле "email"
# И я нажимаю на кнопку "reset_password_btn"
# И я нажимаю на кнопку "reset_password_btn"
# Затем я жду текст "На указанный email отправлено письмо с подтверждением смены пароля"
# Затем я жду текст "На указанный email отправлено письмо с подтверждением смены пароля"
#
#
# Сценарий: Проверка токена, токен невалидный
# Сценарий: Проверка токена, токен невалидный
# Допустим я захожу на страницу '/reset-password?token=123'
# Допустим я захожу на страницу '/reset-password?token=123'
# То я жду текст "Ошибка: Данный токен недействителен"
# То я жду текст "Ошибка: Данный токен недействителен"
#
\ No newline at end of file
tests/auth_test.js
View file @
a7c1a3aa
// Feature('Авторизация/Аутентификация');
// Feature('Авторизация/Аутентификация');
// Scenario('Успешная проверка токена', async ({I}) => {
// Scenario('Успешная проверка токена', async ({I}) => {
// let response = await I.sendPostRequest('account/reset-password/', {email: "
rina.saif221@gmail
.com"});
// let response = await I.sendPostRequest('account/reset-password/', {email: "
admin@admin
.com"});
// I.amOnPage('/reset-password?token=' + response.data.token)
// I.amOnPage('/reset-password?token=' + response.data.token)
// I.fillField({id: 'password'}, '1
23456rrr
');
// I.fillField({id: 'password'}, '1
qaz@WSX29
');
// I.fillField({id: 'confirm_password'}, '1
23456rrr
');
// I.fillField({id: 'confirm_password'}, '1
qaz@WSX29
');
// I.click({name: 'reset_password_btn'})
// I.click({name: 'reset_password_btn'})
// I.waitForText('Пароль успешно изменен')
// I.waitForText('Пароль успешно изменен')
// });
// });
// //
\ No newline at end of file
tests/courses_test.js
View file @
a7c1a3aa
const
baseLogin
=
(
I
)
=>
{
// const baseLogin = (I) => {
I
.
amOnPage
(
'/login'
)
// I.amOnPage('/login')
I
.
fillField
({
id
:
'email'
},
'rina.saif221@gmail.com'
)
// I.fillField({id: 'email'}, 'qwe@qwe.qwe')
I
.
fillField
({
id
:
'password'
},
'123456ttt'
)
// I.fillField({id: 'password'}, '1qaz@WSX29')
I
.
click
({
name
:
'login_btn'
})
// I.click({name: 'login_btn'})
I
.
wait
(
3
)
// I.wait(3)
}
// I.amOnPage('/courses-and-groups')
Feature
(
'Курсы'
)
//
Scenario
(
'Создание курса'
,
async
({
I
})
=>
{
// }
let
someTitle
=
'course-'
+
Math
.
random
().
toString
().
substring
(
10
)
// const createCourse = (I, course_name) => {
baseLogin
(
I
)
// I.click('Создать курс')
I
.
amOnPage
(
'/courses-and-groups'
)
// I.waitForText('Создание курса')
I
.
click
({
id
:
'create_course_btn'
})
// I.fillField({id: 'title'}, course_name)
I
.
waitForText
(
'Создание курса'
)
// I.fillField({id: 'duration'}, '15')
I
.
fillField
({
id
:
'title'
},
someTitle
)
// I.click({id: 'submit_course_btn'})
I
.
fillField
({
id
:
'duration'
},
'15'
)
// I.waitForText(`Курс ${course_name} успешно создан!`)
I
.
click
({
id
:
'submit_course_btn'
})
// I.dontSee('Создание курса')
I
.
waitForText
(
`Курс
${
someTitle
}
успешно создан!`
)
// I.see(course_name)
I
.
dontSee
(
'Создание курса'
)
// }
I
.
see
(
someTitle
)
//
});
// const createGroup = (I, courseName, groupNum) => {
// I.click({id: `${courseName}_card`})
Scenario
(
'Редактирование курса'
,
async
({
I
})
=>
{
// I.waitForText('+ Добавить новую группу')
let
someTitle
=
'course-'
+
Math
.
random
().
toString
().
substring
(
10
)
// I.click('+ Добавить новую группу')
baseLogin
(
I
)
// I.waitForText('Создание группы')
I
.
amOnPage
(
'/courses-and-groups/courses/1/edit'
)
// I.click({id:'start_date'})
I
.
fillField
({
id
:
'title'
},
someTitle
)
// I.pressKey('Enter')
I
.
fillField
({
id
:
'duration'
},
'15'
)
// I.click({id:'end_date'})
I
.
click
({
id
:
'submit_course_btn'
})
// I.pressKey('Enter')
I
.
waitForText
(
`Курс
${
someTitle
}
успешно изменен!`
)
// I.click({id: 'color_blueviolet_label'})
I
.
dontSee
(
'Редактирование курса'
)
// I.click('Создать')
I
.
see
(
someTitle
)
// I.see(`Группа ${courseName} ${groupNum} успешно создана!`)
});
// I.dontSee('Создание группы')
\ No newline at end of file
// }
//
// const deactivateCourse = (I, courseName) => {
// I.click({id: `${courseName}_deactivation_icon`})
// I.waitForText(`Вы уверены, что хотите деактивировать курс ${courseName}?`)
// I.click('Подтвердить')
// I.waitForText(`Курс ${courseName} успешно деактивирован!`)
// I.dontSee(`Вы уверены, что хотите деактивировать курс ${courseName}?`)
// I.dontSee(courseName)
// I.click('Перейти к неактивным')
// I.waitForText(courseName)
// }
//
// Feature('Курсы/группы')
// Scenario('Создание курса', async ({I}) => {
// baseLogin(I)
// createCourse(I, 'Java')
// });
//
//
// Scenario('Редактирование курса', async ({I}) => {
// baseLogin(I)
// I.click({id: 'Java_edit_icon'})
// I.fillField({id: 'title'}, 'Javascript')
// I.click('Сохранить')
// I.waitForText(`Курс Javascript успешно изменен!`)
// I.dontSee('Редактирование курса')
// I.see('Javascript')
// });
//
//
// Scenario('Деактивация курса', async ({I}) => {
// baseLogin(I)
// deactivateCourse(I, 'Javascript')
// });
//
// Scenario('Активация курса без групп', async ({I}) => {
// baseLogin(I)
// I.click('Перейти к неактивным')
// I.waitForText('Javascript')
// I.click({id: 'Javascript_activation_icon'})
// I.see('Курс Javascript успешно активирован!')
// I.wait(3)
// I.dontSee('Javascript')
// I.click('Перейти к активным')
// I.see('Javascript')
// })
//
// Scenario('Создание группы', async ({I}) => {
// baseLogin(I)
// createGroup(I, 'Javascript', '1')
// });
//
// Scenario('Редактирование группы', async ({I}) => {
// baseLogin(I)
// I.click({id: 'Javascript_card'})
// I.waitForText('+ Добавить новую группу')
// I.click({id: 'Javascript_1_edit'})
// I.fillField({id: 'number'}, '15')
// I.click('Сохранить')
// I.waitForText('Группа Javascript 15 успешна изменена!')
// });
//
// Scenario('Активация курса c группами без выбора групп', async ({I}) => {
// baseLogin(I)
// deactivateCourse(I,'Javascript')
// I.click({id: 'Javascript_activation_icon'})
// I.click('Подтвердить')
// I.see('Курс Javascript успешно активирован!')
// I.see('Группы курсов')
// I.click({id: 'Javascript_card'})
// I.see('Javascript 15')
// })
//
// Scenario('Активация группы', async ({I}) => {
// baseLogin(I)
// I.click('Перейти к неактивным')
// I.see('Группы курсов')
// I.click({id: 'Javascript_card'})
// I.see('Javascript 15')
// I.click({id: 'Javascript_15_activate'})
// I.waitForText('Группа Javascript 15 успешно активирована!')
// I.dontSee('Группы курсов')
// I.click('Перейти к активным')
// I.click({id: 'Javascript_card'})
// I.see('Javascript 15')
// })
//
// Scenario('Активация курса c группами c выбором групп', async ({I}) => {
// baseLogin(I)
// deactivateCourse(I,'Javascript')
// I.click({id: 'Javascript_activation_icon'})
// I.click('Выбрать все группы')
// I.click('Подтвердить')
// I.see('Курс Javascript успешно активирован!')
// I.dontSee('Группы курсов')
// I.click('Перейти к активным')
// I.click({id: 'Javascript_card'})
// I.see('Javascript 15')
// })
\ No newline at end of file
tests/profile_test.js
View file @
a7c1a3aa
// const baseLogin = (I) => {
// const baseLogin = (I) => {
// I.amOnPage('/login')
// I.amOnPage('/login')
// I.fillField({id: 'email'}, '
rina.saif221@gmail.com
')
// I.fillField({id: 'email'}, '
qwe@qwe.qwe
')
// I.fillField({id: 'password'}, '1
23456ttt
')
// I.fillField({id: 'password'}, '1
qaz@WSX29
')
// I.click({name:'login_btn'})
// I.click({name:'login_btn'})
// I.wait(3)
// I.amOnPage('profile')
// }
// }
//
// Feature('Профиль')
// Feature('Профиль')
// Scenario('Модалка и ее скрытие о неподтверженном телефона, отправка зпроса с кнопки профиля', async ({I}) => {
// Scenario('Модалка и ее скрытие о неподтверженном телефона, отправка зпроса с кнопки профиля', async ({I}) => {
// baseLogin(I)
// baseLogin(I)
...
@@ -48,39 +51,6 @@
...
@@ -48,39 +51,6 @@
// I.click({id:'close_email_modal_btn'})
// I.click({id:'close_email_modal_btn'})
// I.dontSee('Письмо с ссылкой подтверждения отправлено на ваш email')
// I.dontSee('Письмо с ссылкой подтверждения отправлено на ваш email')
// });
// });
//
// Scenario('Отправка запроса на подтверждение email c модалки', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'verify_email_btn_modal'})
// I.waitForText('Письмо с ссылкой подтверждения отправлено на ваш email')
// I.click({id:'close_email_modal_btn'})
// I.dontSee('Письмо с ссылкой подтверждения отправлено на ваш email')
// });
//
// Scenario('Обработка невалидного токена подтверждения email', async ({I}) => {
// baseLogin(I)
// I.waitForText('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.amOnPage('/verify-email?token=wwTIss')
// I.waitForText('Данная ссылка более не действительна', 3)
// I.click({id: 'to_profile_btn'})
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// });
//
//
// Scenario('Обработка валидиного токена подтверждения email', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'verify_email_btn_modal'})
// I.waitForText('Письмо с ссылкой подтверждения отправлено на ваш email', 3)
// I.amOnPage('/verify-email?token=0000')
// I.waitForText('Email успешно подтвержден')
// I.click({id: 'to_profile_btn'})
// I.wait(3)
// I.dontSee('Подтвердить email')
// });
//
//
// Scenario('Успешное обновление аватарки', async ({I}) => {
// Scenario('Успешное обновление аватарки', async ({I}) => {
// baseLogin(I)
// baseLogin(I)
// I.attachFile({id: 'avatar_update_input'}, 'files_for_tests/some_avatar.png')
// I.attachFile({id: 'avatar_update_input'}, 'files_for_tests/some_avatar.png')
...
@@ -108,9 +78,9 @@
...
@@ -108,9 +78,9 @@
// baseLogin(I)
// baseLogin(I)
// I.click({id: 'edit_profile_btn'})
// I.click({id: 'edit_profile_btn'})
// I.click({id: 'change_password_btn'})
// I.click({id: 'change_password_btn'})
// I.fillField({id: 'old_password'}, '1
234567890
')
// I.fillField({id: 'old_password'}, '1
qaz@WSX29
')
// I.fillField({id:'password'}, '1
23456ttt
')
// I.fillField({id:'password'}, '1
qaz@WSX29
')
// I.fillField({id:'confirm_password'}, '1
23456ttt
')
// I.fillField({id:'confirm_password'}, '1
qaz@WSX29
')
// I.click({id: 'change_password_button'})
// I.click({id: 'change_password_button'})
// I.waitForText('Введеный вами пароль не совпадает с ранее установленным')
// I.waitForText('Введеный вами пароль не совпадает с ранее установленным')
// I.fillField({id: 'old_password'}, '123456ttt')
// I.fillField({id: 'old_password'}, '123456ttt')
...
@@ -131,7 +101,7 @@
...
@@ -131,7 +101,7 @@
// Scenario('Редактирование профиля без смены email и телефона', async ({I}) => {
// Scenario('Редактирование профиля без смены email и телефона', async ({I}) => {
// baseLogin(I)
// baseLogin(I)
// changeFullname(I, 'Vasiliy', 'Petrov')
// changeFullname(I, 'Vasiliy', 'Petrov')
// changeFullname(I, '
Zarina', 'Zarina
')
// changeFullname(I, '
Some', 'User
')
// });
// });
//
//
//
//
...
@@ -153,3 +123,36 @@
...
@@ -153,3 +123,36 @@
// I.waitForText('Данные аккаунта успешно изменены!')
// I.waitForText('Данные аккаунта успешно изменены!')
// });
// });
//
//
//
// Scenario('Отправка запроса на подтверждение email c модалки', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'verify_email_btn_modal'})
// I.waitForText('Письмо с ссылкой подтверждения отправлено на ваш email')
// I.click({id:'close_email_modal_btn'})
// I.dontSee('Письмо с ссылкой подтверждения отправлено на ваш email')
// });
//
// Scenario('Обработка невалидного токена подтверждения email', async ({I}) => {
// baseLogin(I)
// I.waitForText('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.amOnPage('/verify-email?token=wwTIss')
// I.waitForText('Данная ссылка более не действительна', 3)
// I.click({id: 'to_profile_btn'})
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// });
//
//
// Scenario('Обработка валидиного токена подтверждения email', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'verify_email_btn_modal'})
// I.waitForText('Письмо с ссылкой подтверждения отправлено на ваш email', 3)
// I.amOnPage('/verify-email?token=0000')
// I.waitForText('Email успешно подтвержден')
// I.click({id: 'to_profile_btn'})
// I.wait(3)
// I.dontSee('Подтвердить email')
// });
tests/users_test.js
0 → 100644
View file @
a7c1a3aa
const
baseLogin
=
(
I
)
=>
{
I
.
amOnPage
(
'/login'
)
I
.
fillField
({
id
:
'email'
},
'admin@admin.com'
)
I
.
fillField
({
id
:
'password'
},
'1qaz@WSX29'
)
I
.
click
({
name
:
'login_btn'
})
I
.
wait
(
3
)
I
.
click
(
'Напоминть мне позже'
)
I
.
click
({
id
:
'notifications_icon'
})
I
.
click
(
'Подтвердить пользователя'
)
I
.
waitForText
(
'Успешно подтвержден'
)
}
Feature
(
'Пользователи'
);
// Scenario('Регистрация пользователя', async ({I}) => {
// I.amOnPage('register')
// I.fillField({id: 'email'}, 'qwertgfsd@gmail.com');
// I.fillField({id: 'phone_number'}, '12345678435');
// I.fillField({id: 'last_name'}, 'Familiya');
// I.fillField({id: 'first_name'}, 'Imya');
// I.fillField({id: 'password'}, '1qaz@WSX29');
// I.fillField({id: 'confirm_password'}, '1qaz@WSX29');
// I.click('Зарегистрироваться')
// I.waitForText('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// });
//
Scenario
(
'Уведомление администрации о регистрации'
,
async
({
I
})
=>
{
baseLogin
(
I
)
});
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment