當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript lolex.Clock類代碼示例

本文整理匯總了TypeScript中lolex.Clock的典型用法代碼示例。如果您正苦於以下問題:TypeScript Clock類的具體用法?TypeScript Clock怎麽用?TypeScript Clock使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Clock類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1:

const skipBattle = (clock: Clock, fsp: FullScreenPokemon, player: IPlayer): void => {
    fsp.inputs.keyDownA(player);
    clock.tick(2000);
    fsp.inputs.keyDownA(player);
    clock.tick(2000);
    fsp.inputs.keyDownA(player);
    fsp.inputs.keyDownA(player);
    clock.tick(2000);
    fsp.inputs.keyDownA(player);
    clock.tick(1000);
};
開發者ID:FullScreenShenanigans,項目名稱:FullScreenPokemon,代碼行數:11,代碼來源:Experience.test.ts

示例2:

const skipBallsFlickering = (clock: Clock, fsp: FullScreenPokemon): void => {
    // Balls slowly appearing
    clock.tick(fsp.cutscenes.pokeCenter.ballAppearanceRate * fsp.frameTicker.getInterval());

    // Balls flickering
    clock.tick(fsp.cutscenes.pokeCenter.ballFlickerRate * fsp.frameTicker.getInterval() * 2);

    // Balls dissapearing after 8 flashes + a double-long pause
    clock.tick(fsp.cutscenes.pokeCenter.ballFlickerRate * fsp.frameTicker.getInterval() * 10);

};
開發者ID:FullScreenShenanigans,項目名稱:FullScreenPokemon,代碼行數:11,代碼來源:PokeCenterCutscene.test.ts

示例3:

const processBattle = (fsp: FullScreenPokemon, enemyPokemon: IPokemon, player: IPlayer, clock: Clock) => {
    fsp.battles.startBattle({
        teams: {
            opponent: {
                actors: [enemyPokemon],
            },
        },
        texts: {
            start: (team: IBattleTeam): string =>
                `Wild ${team.selectedActor.nickname.join("")} appeared!`,
        },
    });
    fsp.inputs.keyDownA(player);
    clock.tick(2000);
};
開發者ID:FullScreenShenanigans,項目名稱:FullScreenPokemon,代碼行數:15,代碼來源:Battles.test.ts

示例4: describe

describe('accumulatingDebounce', ()=>{

    let clock:Clock;

    before(()=>{
        clock = lolex.install();
    });

    after(()=>{
        clock.uninstall();
    });

    it("calls the add function once, followed by the final function, when the returned function is called once", ()=>{
        let deb:AccumulatingDebouncedFunction<any>;
        let done = false;
        const finalFn = sinon.spy(()=>{
            assert(addFn.calledOnce, "add function called exactly once, before the final function");
            assert(true, "final function called");
        });
        const addFn = sinon.spy(()=>{ return {}; });
        deb = accumulatingDebounce(finalFn, addFn, ()=>{return {};}, 0, ()=>{
            assert(!deb.isPending(), "final function wont be called again");
            done = true;
        });

        assert(!deb.isPending(), "before being called, no timeout is pending");
        deb();
        clock.tick(1);
        assert.isTrue(done);
        assert.isTrue(finalFn.calledOnce);
    });

    it("calls the add function three times, followed by the final function once, when the returned function is called "+
            "three times in succession", ()=>{
        let deb:AccumulatingDebouncedFunction<any>;
        let done = false;
        const finalFn = sinon.spy(()=>{
            assert(addFn.callCount === 3, "add function called three times, before the final function called once");
        });
        const addFn = sinon.spy(()=>{ return {}; });
        const afterTimeoutExpire = sinon.spy(()=>{
            if (afterTimeoutExpire.callCount === 1) {
                assert(addFn.callCount === 3, "add function called three times before the first timeout expire");
                assert(deb.isPending(), "final function will be called again, because there has been an add call "+
                                        "(actually, 2) since the timeout was set");
            } else {
                assert(afterTimeoutExpire.callCount === 2, "timeout expired only twice");
                assert(addFn.callCount === 3, "no additional add calls triggered since last timeout expire");
                assert(!deb.isPending(), "final function will not be called again");
                done = true;
            }
        });
        deb = accumulatingDebounce(finalFn, addFn, ()=>{return {};}, 0, afterTimeoutExpire);
        deb();
        deb();
        deb();
        clock.tick(1);
        assert.isTrue(finalFn.calledOnce);
        assert.isTrue(done);
    });

    it("accumulates arguments as specified, and only triggers the final function with them once per burst", ()=>{
        let deb:AccumulatingDebouncedFunction<number>;
        let done = false;

        let finalFnCalls = 0;
        let expiredTimeouts = 0;
        const finalFn = (arg:number[])=>{
            finalFnCalls++;
            if (finalFnCalls === 1) {
                assert.deepEqual(arg, [1,2,3,4,5], "first burst of arguments should be accumulated");
            } else if (finalFnCalls === 2) {
                assert.deepEqual(arg, [6], "second burst of arguments accumulated");
            } else if (finalFnCalls === 3) {
                assert.deepEqual(arg, [7,8], "third burst of arguments accumulated");
                done = true;
            }
        };
        const addFn = (acc:number[], arg:number)=>{
            acc.push(arg);
            return acc;
        };

        deb = accumulatingDebounce(finalFn, addFn, ()=>[], 0, ()=>{
            expiredTimeouts++;
            if (finalFnCalls === 1 && expiredTimeouts === 2) {
                assert(!deb.isPending(), "before we add more arguments, no timeout is set to happen");
                deb(6);
                assert(deb.isPending(), "after adding arguments, timeout is set to happen");
            } else if (finalFnCalls === 2 && expiredTimeouts === 3) {
                assert(!deb.isPending(), "before we add more arguments, no timeout is set to happen");
                deb(7);
                deb(8);
                assert(deb.isPending(), "after adding arguments, timeout is set to happen");
            }
        });
        deb(1);
        deb(2);
        deb(3);
        deb(4);
//.........這裏部分代碼省略.........
開發者ID:agarwalrounak,項目名稱:cbioportal-frontend,代碼行數:101,代碼來源:accumulatingDebounce.spec.ts

示例5: it

 it("waits the specified number of milliseconds before executing", ()=>{
     let done = false;
     let deb = accumulatingDebounce((x:number)=>{ done = true; }, (x:number)=>0, ()=>{return 0;}, 250);
     deb();
     clock.tick(10);
     assert.isFalse(done);
     clock.tick(60);
     assert.isFalse(done);
     clock.tick(100);
     assert.isFalse(done);
     clock.tick(90);
     assert.isTrue(done);
 });
開發者ID:agarwalrounak,項目名稱:cbioportal-frontend,代碼行數:13,代碼來源:accumulatingDebounce.spec.ts

示例6: assert

         "three times in succession", ()=>{
     let deb:AccumulatingDebouncedFunction<any>;
     let done = false;
     const finalFn = sinon.spy(()=>{
         assert(addFn.callCount === 3, "add function called three times, before the final function called once");
     });
     const addFn = sinon.spy(()=>{ return {}; });
     const afterTimeoutExpire = sinon.spy(()=>{
         if (afterTimeoutExpire.callCount === 1) {
             assert(addFn.callCount === 3, "add function called three times before the first timeout expire");
             assert(deb.isPending(), "final function will be called again, because there has been an add call "+
                                     "(actually, 2) since the timeout was set");
         } else {
             assert(afterTimeoutExpire.callCount === 2, "timeout expired only twice");
             assert(addFn.callCount === 3, "no additional add calls triggered since last timeout expire");
             assert(!deb.isPending(), "final function will not be called again");
             done = true;
         }
     });
     deb = accumulatingDebounce(finalFn, addFn, ()=>{return {};}, 0, afterTimeoutExpire);
     deb();
     deb();
     deb();
     clock.tick(1);
     assert.isTrue(finalFn.calledOnce);
     assert.isTrue(done);
 });
開發者ID:agarwalrounak,項目名稱:cbioportal-frontend,代碼行數:27,代碼來源:accumulatingDebounce.spec.ts

示例7: after

 after(()=>{
     clock.uninstall();
 });
開發者ID:agarwalrounak,項目名稱:cbioportal-frontend,代碼行數:3,代碼來源:accumulatingDebounce.spec.ts


注:本文中的lolex.Clock類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。