import { describe, expect, it } from "@effect/vitest";import * as Cause from "effect/Cause";import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";import { isAsyncResultLoading } from "./async-result";describe("isAsyncResultLoading", () => { it("treats initial and waiting-without-value async results as loading", () => { expect(isAsyncResultLoading(AsyncResult.initial())).toBe(true); expect(isAsyncResultLoading(AsyncResult.initial(true))).toBe(true); expect(isAsyncResultLoading(AsyncResult.failure(Cause.fail("boom"), { waiting: true }))).toBe( true, ); }); it("does not treat settled success or failure as loading", () => { expect(isAsyncResultLoading(AsyncResult.success(["ready"]))).toBe(false); expect(isAsyncResultLoading(AsyncResult.failure(Cause.fail("boom")))).toBe(false); }); it("keeps stale values rendered while a refresh is waiting", () => { expect(isAsyncResultLoading(AsyncResult.success(["cached"], { waiting: true }))).toBe(false); });});
import { describe, expect, it } from "@effect/vitest";
import * as Cause from "effect/Cause";
import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
import { isAsyncResultLoading } from "./async-result";
describe("isAsyncResultLoading", () => {
it("treats initial and waiting-without-value async results as loading", () => {
expect(isAsyncResultLoading(AsyncResult.initial())).toBe(true);
expect(isAsyncResultLoading(AsyncResult.initial(true))).toBe(true);
expect(isAsyncResultLoading(AsyncResult.failure(Cause.fail("boom"), { waiting: true }))).toBe(
true,
);
});
it("does not treat settled success or failure as loading", () => {
expect(isAsyncResultLoading(AsyncResult.success(["ready"]))).toBe(false);
expect(isAsyncResultLoading(AsyncResult.failure(Cause.fail("boom")))).toBe(false);
});
it("keeps stale values rendered while a refresh is waiting", () => {
expect(isAsyncResultLoading(AsyncResult.success(["cached"], { waiting: true }))).toBe(false);
});
});