1import { assert, describe, it } from "@effect/vitest"
2import * as Effect from "effect/Effect"
3import * as LogLevel from "effect/LogLevel"
4import * as References from "effect/References"
5
6describe("LogLevel", () => {
7 describe("isEnabled", () => {
8 it.effect("uses Info as the default minimum log level", () =>
9 Effect.gen(function*() {
10 assert.isFalse(yield* LogLevel.isEnabled("Debug"))
11 assert.isTrue(yield* LogLevel.isEnabled("Info"))
12 assert.isTrue(yield* LogLevel.isEnabled("Error"))
13 }))
14
15 it.effect("supports All and None sentinel thresholds", () =>
16 Effect.gen(function*() {
17 const [debugEnabled, warnEnabled, errorEnabled] = yield* Effect.all([
18 LogLevel.isEnabled("Debug"),
19 LogLevel.isEnabled("Warn"),
20 LogLevel.isEnabled("Error")
21 ]).pipe(Effect.provideService(References.MinimumLogLevel, "Warn"))
22
23 assert.isFalse(debugEnabled)
24 assert.isTrue(warnEnabled)
25 assert.isTrue(errorEnabled)
26 }))
27 })
28})