LiaDéveloppeurs

Paquets

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

AppelLes réponses du test
initUn joueur de test (tester) , mode test, anglais, clair, une feuille, notifications disponibles
payUne charge payée, ch_mock0001 et au-delà
showAd et ses raccourcisUne vidéo regardée (ad_mock), ou une bannière interstitielle
confirm, showPopupOui, et le premier bouton
requestNotifications, inviteFriendAutorisé, invité
submitScore, leaderboardGarde votre meilleur score et vous classe premier
StockageRéservé en mémoire pour la page's durée de vie.
biometricFace ID disponible, authentifiée
Tout le resteCe 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

Tapez pour rechercher sur toutes les pages, méthodes et points de terminaison.