5180 fichiers 38.5 Mo 0 téléchargements 290 vues mis à jour il y a 6 heures ui
nitro-v36-with-renderer-v36 / src / hooks / rooms / widgets / wiredRewardStore.test.ts
wiredRewardStore.test.ts 1.5 Ko Télécharger le fichier
import { beforeEach, describe, expect, it } from 'vitest';
import { receiveWiredReward, useWiredRewardStore } from './wiredRewardStore';

const reward = (openByDefault: boolean, text = '') => ({
    successType: 2,
    hasRewardContents: true,
    rewardRule: { nodes: [{ type: 0 as const, amount: 10, itemType: null }] },
    rewardText: text,
    openByDefault,
});

beforeEach(() => useWiredRewardStore.setState({ receipts: {}, open: [], nextId: 1 }));

describe('receiveWiredReward (AIR RewardNotificationController.onTransactionSuccess)', () => {
    it('gives each reward its own link, so an older notification still opens its own reward', () => {
        expect(receiveWiredReward(reward(false, 'one'))).toBe('wiredchestreward/open/1');
        expect(receiveWiredReward(reward(false, 'two'))).toBe('wiredchestreward/open/2');

        expect(useWiredRewardStore.getState().receipts[1].text).toBe('one');
        expect(useWiredRewardStore.getState().open).toEqual([]);
    });

    it('opens a reward that opens by default and gives its notification no link', () => {
        expect(receiveWiredReward(reward(true))).toBeNull();
        expect(useWiredRewardStore.getState().open).toEqual([1]);
    });

    it('ignores any other success and a reward without contents', () => {
        expect(receiveWiredReward({ ...reward(false), successType: 4 })).toBeNull();
        expect(receiveWiredReward({ ...reward(false), hasRewardContents: false, rewardRule: null })).toBeNull();
        expect(useWiredRewardStore.getState().receipts).toEqual({});
    });
});
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser