packages feed

keiki-codec-json-test-0.1.0.0: keiki-codec-json-test.cabal

cabal-version:   3.0
name:            keiki-codec-json-test
version:         0.1.0.0
synopsis:
  Property-test toolkit for keiki-codec-json downstream consumers.

description:
  Sibling package to keiki-codec-json providing two hspec-callable
  test helpers consumers wire into their own test suites:
  .
  * @Keiki.Codec.JSON.Test.Golden.slotGoldenSpec@ — a per-slot-type
  golden-byte detector that catches EP-36 §4 case #10 (silent
  @Aeson.ToJSON@ instance change), the schema-evolution case the
  shape hash cannot detect by design.
  .
  * @Keiki.Codec.JSON.Test.regFileCodecProps@ /
  @regFileShapeSensitivitySpec@ — library-ised versions of the
  EP-36 M3 round-trip + sensitivity disciplines, parameterised
  over the consumer's own slot list.
  .
  Split into a separate package so consumers of @keiki-codec-json@
  for production do not transitively pick up @QuickCheck@ /
  @hspec@ / @quickcheck-instances@.

license:         BSD-3-Clause
author:          Nadeem Bitar
maintainer:      nadeem@gmail.com
copyright:       2026 Nadeem Bitar
category:        Codec, Testing
build-type:      Simple
tested-with:     GHC >=9.12 && <9.13
extra-doc-files:
  CHANGELOG.md
  README.md

common warnings
  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-record-updates
    -Wincomplete-uni-patterns -Wpartial-fields -Wredundant-constraints

common shared-extensions
  default-language:   GHC2024
  default-extensions:
    AllowAmbiguousTypes
    DuplicateRecordFields
    FunctionalDependencies
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    UndecidableInstances

library
  import:          warnings, shared-extensions
  exposed-modules:
    Keiki.Codec.JSON.Test
    Keiki.Codec.JSON.Test.Golden

  hs-source-dirs:  src
  build-depends:
    , aeson                 ^>=2.2
    , base                  ^>=4.21
    , bytestring            ^>=0.12
    , hspec                 ^>=2.11
    , keiki                 ^>=0.1
    , keiki-codec-json      ^>=0.1
    , QuickCheck            ^>=2.15
    , quickcheck-instances  ^>=0.3
    , text                  ^>=2.1

test-suite keiki-codec-json-test-test
  import:         warnings, shared-extensions
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Spec.hs
  other-modules:  Keiki.Codec.JSON.Test.Demo
  build-depends:
    , aeson                  ^>=2.2
    , base                   ^>=4.21
    , bytestring             ^>=0.12
    , hspec                  ^>=2.11
    , keiki                  ^>=0.1
    , keiki-codec-json       ^>=0.1
    , keiki-codec-json-test  ^>=0.1
    , QuickCheck             ^>=2.15
    , quickcheck-instances   ^>=0.3
    , text                   ^>=2.1