revert test changes on ObservableScope

This commit is contained in:
Valere
2025-11-27 16:38:51 +01:00
parent 794585514a
commit 4c2c7d51cf
2 changed files with 1 additions and 55 deletions

View File

@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE in the repository root for full details.
*/
import { describe, expect, it, vi } from "vitest";
import { describe, expect, it } from "vitest";
import { BehaviorSubject, combineLatest, Subject } from "rxjs";
import { logger } from "matrix-js-sdk/lib/logger";
@@ -102,52 +102,3 @@ describe("Epoch", () => {
s$.complete();
});
});
describe("Reconcile", () => {
it("should wait for cleanup to complete before processing next Value", async () => {
vi.useFakeTimers();
const scope = new ObservableScope();
const cleanUp1 = Promise.withResolvers<void>();
const cleanUp2 = vi.fn();
const behavior$ = new BehaviorSubject<number>(1);
let lastProcessed = 0;
scope.reconcile<number>(
behavior$,
async (value: number): Promise<(() => Promise<void>) | void> => {
lastProcessed = value;
if (value === 1) {
return Promise.resolve(async (): Promise<void> => cleanUp1.promise);
} else if (value === 2) {
return Promise.resolve(async (): Promise<void> => {
cleanUp2();
return Promise.resolve(undefined);
});
}
return Promise.resolve();
},
);
// behavior$.next(1);
await vi.advanceTimersByTimeAsync(200);
behavior$.next(2);
await vi.advanceTimersByTimeAsync(300);
await vi.runAllTimersAsync();
// Should not have processed 2 yet because cleanup of 1 is pending
expect(lastProcessed).toBe(1);
cleanUp1.resolve();
// await flushPromises();
await vi.runAllTimersAsync();
// Now 2 should be processed
expect(lastProcessed).toBe(2);
scope.end();
await vi.runAllTimersAsync();
expect(cleanUp2).toHaveBeenCalled();
});
});

View File

@@ -117,10 +117,6 @@ export class ObservableScope {
* values may be skipped.
*
* Basically, this is like React's useEffect but async and for Behaviors.
*
* @arg value$ - The Behavior to track.
* @arg callback - Called whenever the value must be handled. May return a clean-up function
*
*/
public reconcile<T>(
value$: Behavior<T>,
@@ -225,7 +221,6 @@ export class Epoch<T> {
this.value = value;
this.epoch = epoch ?? 0;
}
/**
* Maps the value inside the epoch to a new value while keeping the epoch number.
* # usage