packages feed

relay-pagination-conformance-0.1.1.0: relay-pagination-conformance.cabal

cabal-version:   3.0
name:            relay-pagination-conformance
version:         0.1.1.0
synopsis:        Conformance suite proving no-skip/no-duplicate pagination
description:
  A conformance suite that services run against their own paginated
  endpoints to prove no-skip/no-duplicate behavior: a page walker with
  cursor-loop detection and an invariant checker producing human-readable
  reports. Pages are fetched through a plain callback, so the suite stays
  decoupled from any session runner or HTTP client.

license:         BSD-3-Clause
license-file:    LICENSE
author:          Nadeem Bitar
maintainer:      Nadeem Bitar
category:        Testing, Web
build-type:      Simple
extra-doc-files: CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/shinzui/relay-pagination

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

common lang
  import:             warnings
  default-language:   GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    OverloadedLabels
    OverloadedStrings

library
  import:          lang
  hs-source-dirs:  src
  exposed-modules:
    Relay.Pagination.Conformance
    Relay.Pagination.Conformance.Check
    Relay.Pagination.Conformance.Tasty
    Relay.Pagination.Conformance.Walk

  build-depends:
    , base              >=4.21     && <5
    , bytestring        >=0.11     && <0.13
    , containers        >=0.7      && <0.9
    , relay-pagination  ^>=0.1.1.0
    , tasty             >=1.4      && <1.6
    , tasty-hunit       >=0.10     && <0.11
    , text              >=2.0      && <2.2

test-suite relay-pagination-conformance-test
  import:             lang
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            Main.hs

  -- MultilineStrings: fixture DDL and the multi-row insert (ADR 1)
  default-extensions: MultilineStrings

  -- warp (M6 HTTP walk) requires the threaded RTS
  ghc-options:        -threaded
  other-modules:
    Broken
    CheckSpec
    DbFixture
    DbSpec
    Generators
    HttpSpec
    MutationSpec
    Oracle
    WalkSpec

  build-depends:
    , aeson                         >=2.2      && <2.3
    , base
    , bytestring
    , containers
    , ephemeral-pg
    , hasql                         >=1.10     && <1.11
    , hasql-dynamic-statements      >=0.5      && <0.6
    , http-client                   >=0.7      && <0.8
    , quickcheck-instances          >=0.3      && <0.4
    , relay-pagination              ^>=0.1.1.0
    , relay-pagination-conformance
    , relay-pagination-hasql        ^>=0.1.1.0
    , relay-pagination-servant      ^>=0.1.1.0
    , servant                       >=0.20.3   && <0.21
    , servant-client                >=0.20.3   && <0.21
    , servant-client-core
    , servant-server
    , sop-core                      >=0.5      && <0.6
    , tasty                         >=1.4      && <1.6
    , tasty-hunit                   >=0.10     && <0.11
    , tasty-quickcheck              >=0.10     && <0.12
    , text
    , time                          >=1.12     && <1.15
    , uuid-types                    >=1.0      && <1.1
    , warp                          >=3.3      && <3.5