Buckets:
| import { describe, expect, test } from "bun:test" | |
| import { Cause, Deferred, Effect, Exit, Fiber } from "effect" | |
| import { forwardInitializationFailure } from "./initialization" | |
| describe("desktop initialization", () => { | |
| const failure = new Error("sidecar startup failed") | |
| const expectFailure = (exit: Exit.Exit<unknown, unknown>) => { | |
| expect(Exit.isFailure(exit)).toBe(true) | |
| if (Exit.isSuccess(exit)) return | |
| expect(Cause.squash(exit.cause)).toBe(failure) | |
| } | |
| test("forwards loading task failures before renderer initialization", () => { | |
| const exit = Effect.runSync( | |
| Effect.gen(function* () { | |
| const initialization = yield* Deferred.make<never, unknown>() | |
| yield* forwardInitializationFailure(initialization)(Effect.die(failure)).pipe(Effect.exit) | |
| return yield* Deferred.await(initialization).pipe(Effect.exit) | |
| }), | |
| ) | |
| expectFailure(exit) | |
| }) | |
| test("forwards loading task failures while renderer initialization waits", () => { | |
| const exit = Effect.runSync( | |
| Effect.gen(function* () { | |
| const initialization = yield* Deferred.make<never, unknown>() | |
| const waiting = yield* Deferred.await(initialization).pipe(Effect.exit, Effect.forkChild) | |
| yield* forwardInitializationFailure(initialization)(Effect.die(failure)).pipe(Effect.exit) | |
| return yield* Fiber.join(waiting) | |
| }), | |
| ) | |
| expectFailure(exit) | |
| }) | |
| }) | |
Xet Storage Details
- Size:
- 1.42 kB
- Xet hash:
- a5a1c03187780762ee13bb4be96da9d91bfaa1c2ea471f6e71333309adca2432
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.