TIF_NGANJUK_E41222052/tests/test_register.py

147 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pages.register_page import RegisterPage
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
def test_register_valid_data(driver):
"""
Test Scenario:
Periksa sistem jika user mengisi seluruh form pendaftaran dengan data valid
Technical Requirement:
T1T6, T7T12, T13T20, T21T28, T29T41
Expected Result:
Sistem menerima pendaftaran akun
"""
register = RegisterPage(driver)
register.open()
# === DATA UNIK ===
timestamp = int(time.time())
email_unik = f"dummy_{timestamp}@polije.ac.id"
nim_unik = f"E41{timestamp % 100000}"
register.input_nama_lengkap("Budi Santoso")
register.input_nim("E41234567")
register.input_semester("6")
register.input_angkatan("2022")
register.input_email("dummy_test@polije.ac.id")
register.input_password("Password1!")
register.input_konfirmasi_password("Password1!")
register.submit()
# === WAIT PROSES SUBMIT ===
WebDriverWait(driver, 10).until(
lambda d: d.current_url != RegisterPage.URL
or len(register.get_error_message()) > 0
)
# === ASSERTION ===
assert "register" not in driver.current_url, \
"Registrasi gagal, user masih berada di halaman register"
def test_register_nama_lengkap_kosong(driver):
"""
Test Scenario:
Nama Lengkap tidak diisi
Technical Requirement:
T1 Nama Lengkap tidak boleh kosong
Expected Result:
Sistem menolak pendaftaran dan menampilkan validasi wajib isi
"""
register = RegisterPage(driver)
register.open()
# Nama kosong
register.input_nim("E41234567")
register.input_semester("6")
register.input_angkatan("2022")
register.input_email("test@polije.ac.id")
register.input_password("Password1!")
register.input_konfirmasi_password("Password1!")
register.submit()
assert register.is_field_invalid(RegisterPage.NAMA_LENGKAP)
assert "fill out" in register.get_validation_message(RegisterPage.NAMA_LENGKAP).lower()
def test_register_email_tidak_valid(driver):
register = RegisterPage(driver)
register.open()
register.input_nama_lengkap("Budi Santoso")
register.input_nim("E41234568")
register.input_semester("6")
register.input_angkatan("2022")
register.input_email("email-salah-format")
register.input_password("Password1!")
register.input_konfirmasi_password("Password1!")
register.submit()
assert register.is_field_invalid(RegisterPage.EMAIL)
def test_register_password_tidak_sama(driver):
register = RegisterPage(driver)
register.open()
register.input_nama_lengkap("Budi Santoso")
register.input_nim("E41234569")
register.input_semester("6")
register.input_angkatan("2022")
register.input_email("passwordbeda@polije.ac.id")
register.input_password("Password1!")
register.input_konfirmasi_password("Password2!")
register.submit()
errors = register.get_error_message()
assert len(errors) > 0
def test_register_nim_kosong(driver):
register = RegisterPage(driver)
register.open()
register.input_nama_lengkap("Budi Santoso")
register.input_semester("6")
register.input_angkatan("2022")
register.input_email("nimkosong@polije.ac.id")
register.input_password("Password1!")
register.input_konfirmasi_password("Password1!")
register.submit()
assert register.is_field_invalid(RegisterPage.NIM)
def test_register_semester_bukan_angka(driver):
register = RegisterPage(driver)
register.open()
register.input_nama_lengkap("Budi Santoso")
register.input_nim("E41234570")
register.input_semester("enam")
register.input_angkatan("2022")
register.input_email("semester@polije.ac.id")
register.input_password("Password1!")
register.input_konfirmasi_password("Password1!")
register.submit()
assert register.is_field_invalid(RegisterPage.SEMESTER)
def test_register_semua_field_kosong(driver):
register = RegisterPage(driver)
register.open()
# ASSERTION TANPA CLICK
assert register.is_field_invalid(RegisterPage.NAMA_LENGKAP)