packages feed

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

cabal-version:      3.0
name:               keiki-codec-json-test
version:            0.2.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

extra-source-files: test/golden/*.json

source-repository head
  type:     git
  location: https://github.com/shinzui/keiki.git
  subdir:   keiki-codec-json-test

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
    Keiki.Codec.JSON.Test.GoldenFile

  hs-source-dirs:  src
  build-depends:
    , aeson                 ^>=2.2
    , base                  ^>=4.21
    , bytestring            ^>=0.12
    , hspec                 ^>=2.11
    , keiki                 ^>=0.2
    , keiki-codec-json      ^>=0.2
    , 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.2
    , keiki-codec-json       ^>=0.2
    , keiki-codec-json-test  ^>=0.2
    , QuickCheck             ^>=2.15
    , quickcheck-instances   ^>=0.3
    , text                   ^>=2.1