mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-24 16:03:37 +03:00
40617719ef
We only use these `Show` instances in error messages (where we call `show` explicitly anyway) and test cases (in which Hspec requires `Show a` for any `a` in an assertion). This removes the instance in favor of a custom `showQErr` function (which serializes the error to JSON). It is then used in certain error message production which previously called `show` on a `QErr`. There are two places where we serialize a QErr and then construct a new QErr from the resulting string. Instead, we modify the existing QErr to add extra information. An orphan `Show QErr` instance is retained for tests so that we can have nice test failure messages. This is preparation for future changes in which the error message within `QErr` will not be exposed directly, and therefore will not have a `Show` instance. That said, it feels like a sensible kind of cleanup anyway. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4897 GitOrigin-RevId: 8f79f7a356f0aea571156f39aefac242bf751f3a
12 lines
296 B
Haskell
12 lines
296 B
Haskell
{-# OPTIONS_GHC -Wno-orphans #-}
|
|
|
|
module Hasura.Base.Error.TestInstances () where
|
|
|
|
import Data.Text qualified as Text
|
|
import Hasura.Base.Error
|
|
import Hasura.Prelude
|
|
|
|
-- Orphan instance so that we can write assertions over `Either QErr a`.
|
|
instance Show QErr where
|
|
show = Text.unpack . showQErr
|