| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Test.Hindsight.Generate
Synopsis
- data TestConfig = TestConfig {
- goldenPathFor :: forall (event :: Symbol) (ver :: PeanoNat). (KnownSymbol event, ReifiablePeanoNat ver) => Proxy event -> Proxy ver -> FilePath
- goldenTestCaseCount :: forall a. Num a => a
- goldenTestSeed :: forall a. Num a => a
- goldenTestSizeParam :: forall a. Num a => a
- type TestPayloadRequirements (event :: Symbol) (idx :: PeanoNat) payload = (VersionPayloadRequirements event idx payload, Arbitrary payload)
- class TestPayloadRequirements event idx payload => ValidTestPayloadForVersion (event :: Symbol) (idx :: PeanoNat) payload where
- testEvidence :: Dict (VersionPayloadRequirements event idx payload)
- defaultTestConfig :: TestConfig
- generateTest :: forall (event :: Symbol). TestConfig -> String -> (forall (ver :: PeanoNat) payload. (ValidTestPayloadForVersion event ver payload, Typeable ver, ReifiablePeanoNat ver) => Proxy event -> Proxy ver -> Proxy payload -> TestTree) -> VersionConstraints (EventVersionVector event) (ValidTestPayloadForVersion event) -> TestTree
- makeRoundtripTest :: forall (event :: Symbol) (ver :: PeanoNat) payload. ValidTestPayloadForVersion event ver payload => TestConfig -> Proxy event -> Proxy ver -> Proxy payload -> TestTree
- encodePretty :: ToJSON a => a -> ByteString
- makeGoldenTest :: forall (event :: Symbol) (ver :: PeanoNat) payload. ValidTestPayloadForVersion event ver payload => TestConfig -> Proxy event -> Proxy ver -> Proxy payload -> TestTree
- generateGoldenContent :: (Arbitrary a, ToJSON a) => TestConfig -> IO ByteString
- createRoundtripTests :: forall (event :: Symbol). (KnownSymbol event, HasFullEvidenceList event ValidTestPayloadForVersion) => TestConfig -> TestTree
- createGoldenTests :: forall (event :: Symbol). (KnownSymbol event, HasFullEvidenceList event ValidTestPayloadForVersion) => TestConfig -> TestTree
- showPeanoNat :: forall (n :: PeanoNat). ReifiablePeanoNat n => String
- eventToString :: forall (event :: Symbol). KnownSymbol event => String
Documentation
data TestConfig Source #
Configuration for test generation
Constructors
| TestConfig | |
Fields
| |
type TestPayloadRequirements (event :: Symbol) (idx :: PeanoNat) payload = (VersionPayloadRequirements event idx payload, Arbitrary payload) Source #
class TestPayloadRequirements event idx payload => ValidTestPayloadForVersion (event :: Symbol) (idx :: PeanoNat) payload where Source #
Evidence that a type is a valid payload for a version
Methods
testEvidence :: Dict (VersionPayloadRequirements event idx payload) Source #
Instances
| TestPayloadRequirements event idx payload => ValidTestPayloadForVersion event idx payload Source # | |
Defined in Test.Hindsight.Generate Methods testEvidence :: Dict (VersionPayloadRequirements event idx payload) Source # | |
defaultTestConfig :: TestConfig Source #
Default test configuration
generateTest :: forall (event :: Symbol). TestConfig -> String -> (forall (ver :: PeanoNat) payload. (ValidTestPayloadForVersion event ver payload, Typeable ver, ReifiablePeanoNat ver) => Proxy event -> Proxy ver -> Proxy payload -> TestTree) -> VersionConstraints (EventVersionVector event) (ValidTestPayloadForVersion event) -> TestTree Source #
makeRoundtripTest :: forall (event :: Symbol) (ver :: PeanoNat) payload. ValidTestPayloadForVersion event ver payload => TestConfig -> Proxy event -> Proxy ver -> Proxy payload -> TestTree Source #
Generate roundtrip property test for a specific version
encodePretty :: ToJSON a => a -> ByteString Source #
Helper function to pretty print JSON
makeGoldenTest :: forall (event :: Symbol) (ver :: PeanoNat) payload. ValidTestPayloadForVersion event ver payload => TestConfig -> Proxy event -> Proxy ver -> Proxy payload -> TestTree Source #
Generate golden test for a specific version
generateGoldenContent :: (Arbitrary a, ToJSON a) => TestConfig -> IO ByteString Source #
Generate content for golden tests
createRoundtripTests :: forall (event :: Symbol). (KnownSymbol event, HasFullEvidenceList event ValidTestPayloadForVersion) => TestConfig -> TestTree Source #
Create selective test suites
createGoldenTests :: forall (event :: Symbol). (KnownSymbol event, HasFullEvidenceList event ValidTestPayloadForVersion) => TestConfig -> TestTree Source #
showPeanoNat :: forall (n :: PeanoNat). ReifiablePeanoNat n => String Source #
Convert a Peano-encoded type-level natural to a String
eventToString :: forall (event :: Symbol). KnownSymbol event => String Source #
Convert a type-level event name to a String
Helper function parallel to showPeanoNat for converting type-level
event names to strings for file paths and display.