fix: E2E — توليد رقم أردني صالح (10 خانات) لتسجيل الدخول
المولّد السابق أنتج 11 خانة فرفضه تطبيع الهاتف (الأردن يريد 0 + 9). صار uniqJoPhone ينتج 07 + 8 خانات = 10، و uniqStr للرقم الوطني/اللوحة (لا تمرّ بالتطبيع). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
feb2a9663d
commit
1512bcb5d7
@@ -64,7 +64,11 @@ async function login(phone) {
|
||||
}
|
||||
|
||||
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
||||
const uniqPhone = (p) => `${p}${String(Date.now()).slice(-6)}`;
|
||||
// رقم أردني صالح: 0 + 9 خانات (10 إجمالاً). فريد عبر عدّاد + طابع زمني.
|
||||
let _seq = 0;
|
||||
const uniqJoPhone = () => `07${String(Date.now()).slice(-7)}${_seq++}`;
|
||||
// نصّ فريد عام (رقم وطني/لوحة — لا يمرّ بتطبيع الهاتف).
|
||||
const uniqStr = (p) => `${p}${String(Date.now()).slice(-6)}${_seq++}`;
|
||||
|
||||
// ---- اختبار WebSocket اختياري ----
|
||||
async function tryWebSocket(riderToken, tripId) {
|
||||
@@ -96,7 +100,7 @@ async function main() {
|
||||
|
||||
// ═══ 1. تسجيل الدخول / إنشاء الحساب ═══
|
||||
console.log('1) تسجيل الدخول وإنشاء الحساب (هاتف + OTP)');
|
||||
const riderPhone = uniqPhone('07900');
|
||||
const riderPhone = uniqJoPhone();
|
||||
const rider = await login(riderPhone);
|
||||
check('الراكب سجّل دخوله وحصل على توكن', !!rider.token);
|
||||
check('حساب جديد بدور rider افتراضياً', rider.role === 'rider', `role=${rider.role}`);
|
||||
@@ -108,7 +112,7 @@ async function main() {
|
||||
check('تطبيع الهاتف: نفس الرقم بصيغ مختلفة = نفس المستخدم',
|
||||
riderAgain.body.user?.id === rider.userId);
|
||||
|
||||
const driverPhone = uniqPhone('07955');
|
||||
const driverPhone = uniqJoPhone();
|
||||
let driver = await login(driverPhone);
|
||||
check('السائق سجّل دخوله', !!driver.token);
|
||||
|
||||
@@ -121,14 +125,14 @@ async function main() {
|
||||
check('تقديم السائق أنشأ سجلاً', !!driverId);
|
||||
|
||||
await api('PATCH', '/drivers/profile', driver.token, {
|
||||
gender: 'male', national_number: uniqPhone('99'), name_arabic: 'سائق تجريبي',
|
||||
gender: 'male', national_number: uniqStr("99"), name_arabic: 'سائق تجريبي',
|
||||
license_type: 'private',
|
||||
});
|
||||
check('تحديث ملف السائق (رقم وطني مشفّر + فهرس أعمى)', true);
|
||||
|
||||
const vehicle = await api('POST', '/vehicles', driver.token, {
|
||||
make: 'Toyota', model: 'Corolla', year: 2020, color: 'أبيض', color_hex: '#FFFFFF',
|
||||
plate: uniqPhone('PL'),
|
||||
plate: uniqStr("PL"),
|
||||
});
|
||||
check('إنشاء مركبة', !!vehicle.body.id);
|
||||
check('أول مركبة تصير الافتراضية تلقائياً', vehicle.body.is_default === true);
|
||||
|
||||
Reference in New Issue
Block a user