|
|
@@ -250,7 +250,7 @@ describe("Runner", () => {
|
|
|
Effect.gen(function* () {
|
|
|
const s = yield* Scope.Scope
|
|
|
const runner = Runner.make<string>(s)
|
|
|
- const result = yield* runner.startShell((_signal) => Effect.succeed("shell-done"))
|
|
|
+ const result = yield* runner.startShell(Effect.succeed("shell-done"))
|
|
|
expect(result).toBe("shell-done")
|
|
|
expect(runner.busy).toBe(false)
|
|
|
}),
|
|
|
@@ -264,7 +264,7 @@ describe("Runner", () => {
|
|
|
const fiber = yield* runner.ensureRunning(Effect.never.pipe(Effect.as("x"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
|
|
|
- const exit = yield* runner.startShell((_s) => Effect.succeed("nope")).pipe(Effect.exit)
|
|
|
+ const exit = yield* runner.startShell(Effect.succeed("nope")).pipe(Effect.exit)
|
|
|
expect(Exit.isFailure(exit)).toBe(true)
|
|
|
|
|
|
yield* runner.cancel
|
|
|
@@ -279,12 +279,10 @@ describe("Runner", () => {
|
|
|
const runner = Runner.make<string>(s)
|
|
|
const gate = yield* Deferred.make<void>()
|
|
|
|
|
|
- const sh = yield* runner
|
|
|
- .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("first")))
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("first"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
|
|
|
- const exit = yield* runner.startShell((_s) => Effect.succeed("second")).pipe(Effect.exit)
|
|
|
+ const exit = yield* runner.startShell(Effect.succeed("second")).pipe(Effect.exit)
|
|
|
expect(Exit.isFailure(exit)).toBe(true)
|
|
|
|
|
|
yield* Deferred.succeed(gate, undefined)
|
|
|
@@ -302,37 +300,26 @@ describe("Runner", () => {
|
|
|
},
|
|
|
})
|
|
|
|
|
|
- const sh = yield* runner
|
|
|
- .startShell((signal) =>
|
|
|
- Effect.promise(
|
|
|
- () =>
|
|
|
- new Promise<string>((resolve) => {
|
|
|
- signal.addEventListener("abort", () => resolve("aborted"), { once: true })
|
|
|
- }),
|
|
|
- ),
|
|
|
- )
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const sh = yield* runner.startShell(Effect.never.pipe(Effect.as("aborted"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
|
|
|
- const exit = yield* runner.startShell((_s) => Effect.succeed("second")).pipe(Effect.exit)
|
|
|
+ const exit = yield* runner.startShell(Effect.succeed("second")).pipe(Effect.exit)
|
|
|
expect(Exit.isFailure(exit)).toBe(true)
|
|
|
|
|
|
yield* runner.cancel
|
|
|
const done = yield* Fiber.await(sh)
|
|
|
- expect(Exit.isSuccess(done)).toBe(true)
|
|
|
+ expect(Exit.isFailure(done)).toBe(true)
|
|
|
}),
|
|
|
)
|
|
|
|
|
|
it.live(
|
|
|
- "cancel interrupts shell that ignores abort signal",
|
|
|
+ "cancel interrupts shell",
|
|
|
Effect.gen(function* () {
|
|
|
const s = yield* Scope.Scope
|
|
|
const runner = Runner.make<string>(s)
|
|
|
const gate = yield* Deferred.make<void>()
|
|
|
|
|
|
- const sh = yield* runner
|
|
|
- .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("ignored")))
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("ignored"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
|
|
|
const stop = yield* runner.cancel.pipe(Effect.forkChild)
|
|
|
@@ -356,9 +343,7 @@ describe("Runner", () => {
|
|
|
const runner = Runner.make<string>(s)
|
|
|
const gate = yield* Deferred.make<void>()
|
|
|
|
|
|
- const sh = yield* runner
|
|
|
- .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("shell-result")))
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("shell-result"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
expect(runner.state._tag).toBe("Shell")
|
|
|
|
|
|
@@ -384,9 +369,7 @@ describe("Runner", () => {
|
|
|
const calls = yield* Ref.make(0)
|
|
|
const gate = yield* Deferred.make<void>()
|
|
|
|
|
|
- const sh = yield* runner
|
|
|
- .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("shell")))
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const sh = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("shell"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
|
|
|
const work = Effect.gen(function* () {
|
|
|
@@ -414,16 +397,7 @@ describe("Runner", () => {
|
|
|
const runner = Runner.make<string>(s)
|
|
|
const gate = yield* Deferred.make<void>()
|
|
|
|
|
|
- const sh = yield* runner
|
|
|
- .startShell((signal) =>
|
|
|
- Effect.promise(
|
|
|
- () =>
|
|
|
- new Promise<string>((resolve) => {
|
|
|
- signal.addEventListener("abort", () => resolve("aborted"), { once: true })
|
|
|
- }),
|
|
|
- ),
|
|
|
- )
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const sh = yield* runner.startShell(Effect.never.pipe(Effect.as("aborted"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
|
|
|
const run = yield* runner.ensureRunning(Effect.succeed("y")).pipe(Effect.forkChild)
|
|
|
@@ -478,7 +452,7 @@ describe("Runner", () => {
|
|
|
const runner = Runner.make<string>(s, {
|
|
|
onBusy: Ref.update(count, (n) => n + 1),
|
|
|
})
|
|
|
- yield* runner.startShell((_signal) => Effect.succeed("done"))
|
|
|
+ yield* runner.startShell(Effect.succeed("done"))
|
|
|
expect(yield* Ref.get(count)).toBe(1)
|
|
|
}),
|
|
|
)
|
|
|
@@ -509,9 +483,7 @@ describe("Runner", () => {
|
|
|
const runner = Runner.make<string>(s)
|
|
|
const gate = yield* Deferred.make<void>()
|
|
|
|
|
|
- const fiber = yield* runner
|
|
|
- .startShell((_signal) => Deferred.await(gate).pipe(Effect.as("ok")))
|
|
|
- .pipe(Effect.forkChild)
|
|
|
+ const fiber = yield* runner.startShell(Deferred.await(gate).pipe(Effect.as("ok"))).pipe(Effect.forkChild)
|
|
|
yield* Effect.sleep("10 millis")
|
|
|
expect(runner.busy).toBe(true)
|
|
|
|