LiaGeliştiriciler

Paketler

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ı
initBir test oyuncusu (tester), test modu, İngilizce, ışık, bir sayfa, bildirimler mevcut
payBir ödenen ücret, ch_mock0001 ve yukarı
showAd ve kısa yollarıBir video izlendi (ad_mock), veya gösterilen arka plan
confirm, showPopupEvet ve ilk düğme
requestNotifications, inviteFriendİzin verildi, davet edildi
submitScore, leaderboardEn iyi skorunuzu korur ve sizi birinci yapar
DepolamaSayfa için bellekte saklanır'hayatı
biometricKullanıma Hazır ID, kimlik doğrulandı
Diğer her şeyLia ç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

Her sayfa, yöntem ve uç noktayı aramak için yazın.