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
9eedc316
Commit
9eedc316
authored
Jul 19, 2021
by
zarina
🌊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ACP-45 написала тесты на добавление курса
parent
2b4b2a07
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
176 additions
and
152 deletions
+176
-152
courses_test.js
tests/courses_test.js
+21
-0
profile_test.js
tests/profile_test.js
+155
-152
No files found.
tests/courses_test.js
0 → 100644
View file @
9eedc316
const
baseLogin
=
(
I
)
=>
{
I
.
amOnPage
(
'/login'
)
I
.
fillField
({
id
:
'email'
},
'rina.saif221@gmail.com'
)
I
.
fillField
({
id
:
'password'
},
'123456ttt'
)
I
.
click
({
name
:
'login_btn'
})
I
.
wait
(
3
)
}
Feature
(
'Курсы'
)
Scenario
(
'Создание курса'
,
async
({
I
})
=>
{
let
someTitle
=
'course-'
+
Math
.
random
().
toString
().
substring
(
10
)
baseLogin
(
I
)
I
.
amOnPage
(
'/courses-and-groups'
)
I
.
click
({
id
:
'create_course_btn'
})
I
.
waitForText
(
'Создание курса'
)
I
.
fillField
({
id
:
'title'
},
someTitle
)
I
.
fillField
({
id
:
'duration'
},
'15'
)
I
.
click
({
id
:
'submit_course_btn'
})
I
.
waitForText
(
'Курс успешно создан!'
)
I
.
dontSee
(
'Создание курса'
)
I
.
see
(
someTitle
)
});
\ No newline at end of file
tests/profile_test.js
View file @
9eedc316
const
baseLogin
=
(
I
)
=>
{
I
.
amOnPage
(
'/login'
)
I
.
fillField
({
id
:
'email'
},
'rina.saif221@gmail.com'
)
I
.
fillField
({
id
:
'password'
},
'123456ttt'
)
I
.
click
({
name
:
'login_btn'
})
}
Feature
(
'Профиль'
)
Scenario
(
'Модалка и ее скрытие о неподтверженном телефона, отправка зпроса с кнопки профиля'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
see
(
'Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School'
)
I
.
click
({
id
:
'hide_phone_modal_btn'
})
I
.
dontSee
(
'Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School'
)
I
.
see
(
'подтвердить номер телефона'
)
I
.
click
({
id
:
'verify_phone_btn'
})
I
.
click
({
id
:
'verify_phone_btn'
})
I
.
waitForText
(
'Смс с кодом подтверждения отправлено на ваш номер'
)
I
.
click
({
id
:
'hide_code_modal_btn'
})
I
.
dontSee
(
'Смс с кодом подтверждения отправлено на ваш номер'
)
I
.
see
(
'подтвердить номер телефона'
)
});
Scenario
(
'Подтверждение номера телефона + валидация + модалка'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
see
(
'Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School'
)
I
.
click
({
id
:
'verify_phone_btn_modal'
})
I
.
waitForText
(
'Смс с кодом подтверждения отправлено на ваш номер'
)
I
.
fillField
({
id
:
'code'
},
'5555'
)
I
.
click
({
id
:
'code_submit_btn'
})
I
.
waitForText
(
'Код подтверждения некорректный'
)
I
.
fillField
({
id
:
'code'
},
'0000'
)
I
.
click
({
id
:
'code_submit_btn'
})
I
.
waitForText
(
'Номер успешно подтвержден'
)
I
.
click
({
id
:
'close_phone_modal_btn'
})
I
.
refreshPage
()
I
.
wait
(
3
)
I
.
dontSee
(
'Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School'
)
});
Scenario
(
'Модалка и ее скрытие о неподтверженном email, отправка зпроса с кнопки профиля'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
see
(
'Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School'
)
I
.
click
({
id
:
'hide_email_modal_btn'
})
I
.
dontSee
(
'Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School'
)
I
.
see
(
'подтвердить email'
)
I
.
click
({
id
:
'verify_email_btn'
})
I
.
waitForText
(
'Письмо с ссылкой подтверждения отправлено на ваш email'
)
I
.
click
({
id
:
'close_email_modal_btn'
})
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
(
'Ссылка подтверждения некорректна'
)
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'
)
I
.
amOnPage
(
'/verify-email?token=0000'
)
I
.
waitForText
(
'Email успешно подтвержден'
)
I
.
click
({
id
:
'to_profile_btn'
})
I
.
wait
(
3
)
I
.
dontSee
(
'Подтвердить email'
)
});
Scenario
(
'Успешное обновление аватарки'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
attachFile
({
id
:
'avatar_update_input'
},
'files_for_tests/some_avatar.png'
)
let
first_src
=
await
I
.
grabAttributeFrom
({
id
:
'avatar'
},
'src'
)
I
.
attachFile
({
id
:
'avatar_update_input'
},
'files_for_tests/some_avatar_2.png'
)
let
second_src
=
await
I
.
grabAttributeFrom
({
id
:
'avatar'
},
'src'
)
if
(
second_src
===
first_src
)
{
throw
new
Error
()
}
});
Scenario
(
'Обновление аватарки, валидация неправильный формат'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
attachFile
({
id
:
'avatar_update_input'
},
'files_for_tests/fail_avatar.txt'
)
I
.
waitForText
(
'Загрузите правильное изображение. Файл, который вы загрузили, поврежден или не является изображением.'
)
});
Scenario
(
'Обновление аватарки, валидация пустой файл'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
attachFile
({
id
:
'avatar_update_input'
},
'files_for_tests/fail_empty_avatar.txt'
)
I
.
waitForText
(
'Отправленный файл пуст.'
)
});
let
changeFullname
=
(
I
,
name
,
surname
)
=>
{
I
.
click
({
id
:
'edit_profile_btn'
})
I
.
fillField
({
id
:
'first_name'
},
name
)
I
.
fillField
({
id
:
'last_name'
},
surname
)
I
.
click
({
id
:
'submit_edit_profile_btn'
})
I
.
waitForText
(
'Данные аккаунта успешно изменены!'
)
I
.
click
({
id
:
'back_to_profile_btn'
})
I
.
waitForText
(
`
${
name
}
${
surname
}
`
)
}
Scenario
(
'Редактирование профиля без смены email и телефона'
,
async
({
I
})
=>
{
baseLogin
(
I
)
changeFullname
(
I
,
'Vasiliy'
,
'Petrov'
)
changeFullname
(
I
,
'Zarina'
,
'Zarina'
)
});
Scenario
(
'Редактирование профиля со сменой email и телефона'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
click
({
id
:
'edit_profile_btn'
})
I
.
fillField
({
id
:
'phone_number'
},
Math
.
random
().
toString
().
substring
(
5
))
I
.
fillField
({
id
:
'email'
},
'test_email@gmail.com'
)
I
.
click
({
id
:
'submit_edit_profile_btn'
})
I
.
waitForText
(
'Данные аккаунта успешно изменены!'
)
I
.
click
({
id
:
'back_to_profile_btn'
})
I
.
waitForText
(
`Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School`
)
I
.
waitForText
(
`Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School`
)
I
.
click
({
id
:
'hide_phone_modal_btn'
})
I
.
click
({
id
:
'hide_email_modal_btn'
})
I
.
click
({
id
:
'edit_profile_btn'
})
I
.
fillField
({
id
:
'email'
},
'rina.saif221@gmail.com'
)
I
.
click
({
id
:
'submit_edit_profile_btn'
})
I
.
waitForText
(
'Данные аккаунта успешно изменены!'
)
});
Scenario
(
'Редактирование профиля со сменой email и телефона'
,
async
({
I
})
=>
{
baseLogin
(
I
)
I
.
click
({
id
:
'edit_profile_btn'
})
I
.
click
({
id
:
'change_password_btn'
})
I
.
fillField
({
id
:
'old_password'
},
'1234567890'
)
I
.
fillField
({
id
:
'password'
},
'123456ttt'
)
I
.
fillField
({
id
:
'confirm_password'
},
'123456ttt'
)
I
.
waitForText
(
'Введеный вами пароль не совпадает с ранее установленным'
)
I
.
fillField
({
id
:
'old_password'
},
'123456ttt'
)
I
.
waitForText
(
'Пароль успешно изменен!'
)
});
// const baseLogin = (I) => {
// I.amOnPage('/login')
// I.fillField({id: 'email'}, 'rina.saif221@gmail.com')
// I.fillField({id: 'password'}, '123456ttt')
// I.click({name:'login_btn'})
// }
// Feature('Профиль')
// Scenario('Модалка и ее скрытие о неподтверженном телефона, отправка зпроса с кнопки профиля', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'hide_phone_modal_btn'})
// I.dontSee('Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School')
// I.see('подтвердить номер телефона')
// I.click({id: 'verify_phone_btn'})
// I.click({id: 'verify_phone_btn'})
// I.waitForText('Смс с кодом подтверждения отправлено на ваш номер')
// I.click({id:'hide_code_modal_btn'})
// I.dontSee('Смс с кодом подтверждения отправлено на ваш номер')
// I.see('подтвердить номер телефона')
// });
//
// Scenario('Подтверждение номера телефона + валидация + модалка', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'verify_phone_btn_modal'})
// I.waitForText('Смс с кодом подтверждения отправлено на ваш номер')
// I.fillField({id: 'code'}, '5555')
// I.click({id: 'code_submit_btn'})
// I.waitForText('Код подтверждения некорректный')
// I.fillField({id: 'code'}, '0000')
// I.click({id: 'code_submit_btn'})
// I.waitForText('Номер успешно подтвержден')
// I.click({id: 'close_phone_modal_btn'})
// I.refreshPage()
// I.wait(3)
// I.dontSee('Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School')
// });
//
//
// Scenario('Модалка и ее скрытие о неподтверженном email, отправка зпроса с кнопки профиля', async ({I}) => {
// baseLogin(I)
// I.see('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.click({id: 'hide_email_modal_btn'})
// I.dontSee('Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School')
// I.see('подтвердить email')
// I.click({id: 'verify_email_btn'})
// I.waitForText('Письмо с ссылкой подтверждения отправлено на ваш email')
// I.click({id:'close_email_modal_btn'})
// 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}) => {
// baseLogin(I)
// I.attachFile({id: 'avatar_update_input'}, 'files_for_tests/some_avatar.png')
// let first_src = await I.grabAttributeFrom({id: 'avatar'}, 'src')
// I.attachFile({id: 'avatar_update_input'}, 'files_for_tests/some_avatar_2.png')
// let second_src = await I.grabAttributeFrom({id: 'avatar'}, 'src')
// if (second_src === first_src) {
// throw new Error()
// }
// });
//
// Scenario('Обновление аватарки, валидация неправильный формат', async ({I}) => {
// baseLogin(I)
// I.attachFile({id: 'avatar_update_input'}, 'files_for_tests/fail_avatar.txt')
// I.waitForText('Загрузите правильное изображение. Файл, который вы загрузили, поврежден или не является изображением.')
// });
//
// Scenario('Обновление аватарки, валидация пустой файл', async ({I}) => {
// baseLogin(I)
// I.attachFile({id: 'avatar_update_input'}, 'files_for_tests/fail_empty_avatar.txt')
// I.waitForText('Отправленный файл пуст.')
// });
//
// Scenario('Редактирование пароля', async ({I}) => {
// baseLogin(I)
// I.click({id: 'edit_profile_btn'})
// I.click({id: 'change_password_btn'})
// I.fillField({id: 'old_password'}, '1234567890')
// I.fillField({id:'password'}, '123456ttt')
// I.fillField({id:'confirm_password'}, '123456ttt')
// I.click({id: 'change_password_button'})
// I.waitForText('Введеный вами пароль не совпадает с ранее установленным')
// I.fillField({id: 'old_password'}, '123456ttt')
// I.click({id: 'change_password_button'})
// I.waitForText('Пароль успешно изменен!')
// });
//
// let changeFullname = (I, name, surname) => {
// I.click({id: 'edit_profile_btn'})
// I.fillField({id: 'first_name'}, name)
// I.fillField({id: 'last_name'}, surname)
// I.click({id: 'submit_edit_profile_btn'})
// I.waitForText('Данные аккаунта успешно изменены!')
// I.click({id: 'back_to_profile_btn'})
// I.waitForText(`${name} ${surname}`)
// }
//
// Scenario('Редактирование профиля без смены email и телефона', async ({I}) => {
// baseLogin(I)
// changeFullname(I, 'Vasiliy', 'Petrov')
// changeFullname(I, 'Zarina', 'Zarina')
// });
//
//
// Scenario('Редактирование профиля со сменой email и телефона', async ({I}) => {
// baseLogin(I)
// I.click({id: 'edit_profile_btn'})
// I.fillField({id: 'phone_number'}, Math.random().toString().substring(5))
// I.fillField({id: 'email'}, 'test_email@gmail.com')
// I.click({id: 'submit_edit_profile_btn'})
// I.waitForText('Данные аккаунта успешно изменены!')
// I.click({id: 'back_to_profile_btn'})
// I.waitForText(`Подтвердите свой номер телефона, иначе вы не сможете получать важные уведомления от Attractor School`)
// I.waitForText(`Подтвердите свой email, иначе вы не сможете получать важные уведомления от Attractor School`)
// I.click({id:'hide_phone_modal_btn'})
// I.click({id:'hide_email_modal_btn'})
// I.click({id: 'edit_profile_btn'})
// I.fillField({id: 'email'}, 'rina.saif221@gmail.com')
// I.click({id: 'submit_edit_profile_btn'})
// I.waitForText('Данные аккаунта успешно изменены!')
// });
//
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