1import { assert, describe, it } from "@effect/vitest"
2import * as Effect from "effect/Effect"
3import * as Stdio from "effect/Stdio"
4
5describe("Stdio", () => {
6 it.effect("layerTest defaults terminal state to false", () =>
7 Effect.gen(function*() {
8 const stdio = yield* Stdio.Stdio
9 assert.isFalse(yield* stdio.stdinIsTerminal)
10 assert.isFalse(yield* stdio.stdoutIsTerminal)
11 }).pipe(Effect.provide(Stdio.layerTest({}))))
12
13 it.effect("layerTest allows terminal state overrides", () =>
14 Effect.gen(function*() {
15 const stdio = yield* Stdio.Stdio
16 assert.isTrue(yield* stdio.stdinIsTerminal)
17 assert.isTrue(yield* stdio.stdoutIsTerminal)
18 }).pipe(Effect.provide(Stdio.layerTest({
19 stdinIsTerminal: Effect.succeed(true),
20 stdoutIsTerminal: Effect.succeed(true)
21 }))))
22})