1import { assert, describe, it } from "@effect/vitest"
2import * as EncodingError from "effect/encoding/EncodingError"
3
4describe("EncodingError", () => {
5 it("constructs errors with encoding failure metadata", () => {
6 const error = new EncodingError.EncodingError({
7 kind: "Decode",
8 module: "Base64",
9 input: "!!!!",
10 message: "Invalid input"
11 })
12
13 assert.strictEqual(error._tag, "EncodingError")
14 assert.strictEqual(error.kind, "Decode")
15 assert.strictEqual(error.module, "Base64")
16 assert.strictEqual(error.input, "!!!!")
17 assert.strictEqual(error.message, "Invalid input")
18 assert.strictEqual(
19 error[EncodingError.EncodingErrorTypeId],
20 EncodingError.EncodingErrorTypeId
21 )
22 })
23
24 it("identifies encoding errors", () => {
25 const error = new EncodingError.EncodingError({
26 kind: "Encode",
27 module: "Hex",
28 input: new Uint8Array(),
29 message: "Invalid input"
30 })
31
32 assert.isTrue(EncodingError.isEncodingError(error))
33 assert.isFalse(EncodingError.isEncodingError(new Error("Invalid input")))
34 assert.isFalse(EncodingError.isEncodingError({ _tag: "EncodingError" }))
35 })
36})