packages feed

aeson-modern-tojson-0.1.1.0: test/Data/Aeson/ToJSON/DerivingSpec.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -dsuppress-idinfo -dsuppress-coercions -dsuppress-type-applications
-dsuppress-module-prefixes -dsuppress-type-signatures -dsuppress-uniques -O #-}

module Data.Aeson.ToJSON.DerivingSpec (main) where

import Data.Aeson
import Data.Aeson.ToJSON.Deriving
import GHC.Generics
import Test.Inspection (inspect, (==-))

data W = W Int Int
  deriving stock (Generic)
  deriving (ToJSON) via (ModernToJSON W)

toEncodingDerived :: W -> Encoding
toEncodingDerived = toEncoding

toEncodingTarget :: W -> Encoding
toEncodingTarget = genericToEncoding defaultOptions

main :: IO ()
main = pure ()

inspect $ 'toEncodingDerived ==- 'toEncodingTarget