Paketler
Yerel geliştirme
Sayfayı kopyala
mockLia(), her çağrıyı test oyuncusuyla cevaplayan bir taklit Lia ile masaüstü tarayıcınızda uygulamanızı inşa edin. Cevapları değiştirin, olayları gönderin ve her mesajı hata ayıklayın.
Uygulama Lia dışında var'çerçevesiz köprü, bu yüzden her çağrı başarısız olur not_in_lia. mockLia() bir taklit Lia koyar: Lia gibi davranır, test oyuncusu test modunda, bu yüzden uygulamanız tamamıyla masaüstü tarayıcısında veya testlerde çalışır.
#Açın
İlk SDK çağrınızdan önce çağırın ve Lia dışında sadece
import { init, isLia, mockLia } from '@lia-labs/sdk';
if (!isLia()) mockLia();
const me = await init(); // { player: { name: 'tester' }, mode: 'test', ... }Bir çerçeve paketiyle'aynı içeriği, o paketten. Bundırla üretim derlemelerinden uzak tut.'istemiyorsanız geliştirici bayrağını (if (import.meta.env.DEV && !isLia())).
#O cevaplar
| Çağrı | Taklit yanıtları |
|---|---|
init | Bir test oyuncusu (tester), test modu, İngilizce, ışık, bir sayfa, bildirimler mevcut |
pay | Bir ödenen ücret, ch_mock0001 ve yukarı |
showAd ve kısa yolları | Bir video izlendi (ad_mock), veya gösterilen arka plan |
confirm, showPopup | Evet ve ilk düğme |
requestNotifications, inviteFriend | İzin verildi, davet edildi |
submitScore, leaderboard | En iyi skorunuzu korur ve sizi birinci yapar |
| Depolama | Sayfa için bellekte saklanır'hayatı |
biometric | Kullanıma Hazır ID, kimlik doğrulandı |
| Diğer her şey | Lia çalıştığında ne cevaplar |
#Cevaplarını değiştir
Geç init kimin ve nasıl olacağını değiştirmek ve onMethod herhangi bir cevabı kendiniz karar verin. Cevap için bir değer döndürün, atın { code } başarısız olmak için, veya çağırın next() mock için'kendi cevabı:
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();
},
});#Olayları gönder
Taklit Lia'dan herhangi birini gönderebilir'olaylar, uygulamanızın nasıl tepki verdiğini denemek için:
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 sayfanızın gerçekleştirdiği tüm çağrıları listeler ve mock.restore() sahte öğeyi kaldırır.
#Testlerde
Aynı mock, testleri basit hale getirir (burada Vitest ve jsdom ile):
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();
});#Tüm mesajları gör
setDebug(true) her çağrıyı, yanıtı ve olayı konsola kaydeder, Lia içinde de:
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' } }Onları kendi günlük kaydınıza yönlendirmek için ikinci bir argüman geçirin, bu da Lia içindeki içeriğinize yardımcı olur'web inceleyici yok: setDebug(true, { log: send, warn: send, error: send }).
#Sunucunuz
Taklit's oturumu (lias_mock) değil'bir Lia imzaladı, bu yüzden /session/verify söylediği değil'geçerli değil. Sunucunuza bir geliştirme yolu verin, veya Lia içinde bir testçi olarak sunucu akışlarını deneyin. Bkz. Uygulamanızı test edin.
Otomatik çeviri. İngilizce, doğru kaynaktır. İngilizce olarak oku