الحزم
التطوير المحلي
نسخ الصفحة
ابنِ تطبيقك في متصفح سطح المكتب باستخدام mockLia()، وهو وهمي Lia يجيب على كل مكالمة بلاعب اختبار. غيّر إجاباته، وأرسل الأحداث، وقم بتصحيح كل رسالة.
خارج تطبيق Lia هناك'لا يوجد جسر إطار، لذلك تفشل كل مكالمة بـ not_in_lia. mockLia() يضع وهمًا Lia بدلًا منه: فهو يجيب على كل مكالمة بنفس الطريقة التي سيجيب بها Lia، مع لاعب اختبار في وضع الاختبار، لذلك تعمل كل تطبيقك في متصفح سطح المكتب أو في الاختبارات.
#أعد تشغيله
استدعِها قبل مكالمة SDK الأولى، فقط خارج Lia:
import { init, isLia, mockLia } from '@lia-labs/sdk';
if (!isLia()) mockLia();
const me = await init(); // { player: { name: 'tester' }, mode: 'test', ... }مع حزمة إطار عمل، فإنه'نفس الاستيراد، من ذلك الحزمة. احتفظ بها بعيداً عن الإصدارات الإنتاجية باستخدام معبئك'علم المطور الخاص بك إذا كنت ترغب (if (import.meta.env.DEV && !isLia())).
#ماذا يجيب عنه
| مكالمة | إجابات النموذج |
|---|---|
init | لاعب تجريبي (tester), وضع الاختبار، الإنجليزية، الإضاءة الخفيفة، ورقة، الإشعارات متاحة |
pay | دفع تم. ch_mock0001 وأعلى |
showAd وإشاراته السريعة | فيديو تم مشاهدته (ad_mock), أو إعلان مُستعرض |
confirm, showPopup | نعم، والزر الأول |
requestNotifications, inviteFriend | مسموح، دعوة |
submitScore, leaderboard | يحفظ أفضل درجتك ويصنّفك أولًا |
| التخزين | مُحتفظ بها في الذاكرة للصفحة'حياة |
biometric | واجهة الوجه المتاحة ID، مُحقق |
| كل شيء آخر | ماذا يجيب عنه Lia عندما يعمل |
#غيّر إجاباته
تمرير init للاختبار مثل فيديو مُكافأة. onMethod للفشل، أو است вызов { code } لسماع كل مرحلة، أو الاستماع لكل إعلان مع next() للمحاكاة'إجابتها الخاصة:
mockLia({
init: { language: 'ar', rtl: true, theme: 'dark', startParam: 'room-k3x9' },
latency: 300, // ms before each answer, to see your loading states
onMethod: (call, next) => {
if (call.method === 'pay' && call.params.productId === 'gold-pack') throw { code: 'cancelled' };
if (call.method === 'showAd') return { watched: false, shown: false, reason: 'no_ad' };
return next();
},
});#إرسال الأحداث
يمكن للنموذج إرسال أي من Lia'الفعاليات، لتجربة كيف تتفاعل تطبيقك:
const mock = mockLia();
mock.event('theme', { colorScheme: 'dark', theme: { bg_color: '#09090B', text_color: '#F5F5F7' } });
mock.event('soundChanged', { on: false });
mock.event('startParam', { startParam: 'room-a81c' });
mock.event('mainButtonClicked');
mock.event('pause');mock.calls يعرض كل استدعاء قام به صفحتك، و mock.restore() يُزيل النموذج.
#في الاختبارات
نفس المُحاكاة يجعل الاختبارات سهلة (هنا مع Vitest و jsdom):
import { afterEach, expect, it } from 'vitest';
import { init, mainButton, mockLia, resetForTests, resetStateForTests } from '@lia-labs/sdk';
afterEach(() => {
resetForTests();
resetStateForTests();
});
it('shows Buy once the player is in', async () => {
const mock = mockLia();
await init();
mainButton.setParams({ text: 'Buy', isVisible: true });
await Promise.resolve();
expect(mock.calls.at(-1)).toMatchObject({ method: 'bottomButton', params: { text: 'Buy', visible: true } });
mock.restore();
});#انظر كل الرسائل
setDebug(true) يُسجل كل استدعاء ورد وحدث إلى وحدة التحكم، داخل Lia أيضًا:
import { setDebug } from '@lia-labs/sdk';
setDebug(true);
// [lia] call pay { productId: 'extra-lives' }
// [lia] event pause undefined
// [lia] answer pay { id: 7, ok: true, result: { chargeId: 'ch_…', productId: 'extra-lives' } }مرر معامل ثانٍ لإرسالها إلى مسجلك الخاص، مما يساعد داخل Lia حيث'لا يوجد مُحلل ويب: setDebug(true, { log: send, warn: send, error: send }).
#خادمك
النموذج'جلسة (lias_mock) لم'لديه واحد Lia موقّع، لذلك /session/verify تقول إنه ليس'غير صالح. أعطِ خادمك مسارًا للتطوير، أو جرّب تدفقات الخادم داخل Lia كمُختبر. انظر اختبار تطبيقك.
تم الترجمة تلقائيًا. الإنجليزية هي مصدر الحقيقة. اقرأ باللغة الإنجليزية