Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0864b91

Browse files
committed
add advance
1 parent f12cc50 commit 0864b91

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

libs/core/testing/src/lib/test-bed.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,28 @@ export class NgtTestBed {
8888
canvas: mockedCanvas,
8989
destroy: fixture.componentInstance.destroy.bind(fixture.componentInstance),
9090
fireEvent: this.createEventFirer(store, fixture),
91+
advance: this.createAdvance(store),
92+
};
93+
}
94+
95+
static createAdvance(store: NgtSignalStore<NgtState>) {
96+
return async (frames: number, delta: number | number[] = 1) => {
97+
const state = store.snapshot;
98+
const subscribers = state.internal.subscribers;
99+
100+
const promises: Promise<void>[] = [];
101+
102+
for (const subscriber of subscribers) {
103+
for (let i = 0; i < frames; i++) {
104+
if (Array.isArray(delta)) {
105+
promises.push(new Promise(() => subscriber.callback({ ...state, delta: delta[i] || delta[-1] })));
106+
} else {
107+
promises.push(new Promise(() => subscriber.callback({ ...state, delta })));
108+
}
109+
}
110+
}
111+
112+
await Promise.all(promises);
91113
};
92114
}
93115

0 commit comments

Comments
 (0)