Paquets
Développement local
Copier la page
Construisez votre application dans un navigateur de bureau avec mockLia(), un Lia de test qui répond à chaque appel avec un joueur de test. Modifiez ses réponses, envoyez des événements et déboguez chaque message.
En dehors de l'application Lia, il y'le non pont en iframe, donc chaque appel échoue avec not_in_lia. mockLia() remplace Lia par un faux : il répond à chaque appel comme Lia le ferait, avec un joueur de test en mode test, de sorte que toute votre application s'exécute dans un navigateur de bureau ou dans les tests.
#Activez-le
Appelez-le avant votre premier appel SDK, et uniquement en dehors de Lia :
import { init, isLia, mockLia } from '@lia-labs/sdk';
if (!isLia()) mockLia();
const me = await init(); // { player: { name: 'tester' }, mode: 'test', ... }Avec un package de framework, il'le même import, depuis ce package. Gardez-le hors des builds de production avec votre bundler'le drapeau de développement si vous le souhaitez (if (import.meta.env.DEV && !isLia())).
#Ce qu'il répond
| Appel | Les réponses du test |
|---|---|
init | Un joueur de test (tester) , mode test, anglais, clair, une feuille, notifications disponibles |
pay | Une charge payée, ch_mock0001 et au-delà |
showAd et ses raccourcis | Une vidéo regardée (ad_mock), ou une bannière interstitielle |
confirm, showPopup | Oui, et le premier bouton |
requestNotifications, inviteFriend | Autorisé, invité |
submitScore, leaderboard | Garde votre meilleur score et vous classe premier |
| Stockage | Réservé en mémoire pour la page's durée de vie. |
biometric | Face ID disponible, authentifiée |
| Tout le reste | Ce que Lia répond lorsqu'il fonctionne |
#Modifiez ses réponses
Passer init pour changer qui et comment, et onMethod pour décider vous-même toute réponse. Renvoyez une valeur pour répondre, lancez { code } pour échouer, ou appelez next() pour le mock'sa propre réponse :
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();
},
});#Envoyer des événements
Le test peut envoyer l'une quelconque de Lia'les événements, pour tester comment votre application réagit :
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 liste chaque appel que votre page a effectué, et mock.restore() supprime le mock.
#En tests
La même simulation rend les tests simples (ici avec Vitest et 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();
});#Voir tous les messages
setDebug(true) enregistre chaque appel, réponse et événement dans la console, à l'intérieur de Lia aussi :
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' } }Passer un deuxième argument pour les envoyer à votre propre journal, ce qui aide à l'intérieur de Lia où il'le non inspecteur web : setDebug(true, { log: send, warn: send, error: send }).
#Votre serveur
Le test'la session (lias_mock) n''ne pas avoir un Lia signé, donc /session/verify dit qu'il ne'valide. Donnez à votre serveur un chemin de développement, ou essayez des flux serveur à l'intérieur de Lia en tant que testeur. Voir Tester votre application.
Traduit automatiquement. L'anglais est la source de vérité. Lire en anglais