github-tools-0.1.2: test/GitHub/Types/EventsSpec.hs
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE Trustworthy #-}
module GitHub.Types.EventsSpec where
import Data.Aeson (decode, encode)
import Test.Hspec (Spec, describe, it, parallel, shouldBe)
import qualified Test.QuickCheck as QC
import GitHub.Types.Events
property :: QC.Testable prop => prop -> QC.Property
property = QC.withMaxSuccess 20 . QC.property
spec :: Spec
spec =
describe "identity JSON conversion" $ parallel $ do
it "CommitCommentEvent" $ property $ \(x :: CommitCommentEvent ) -> decode (encode x) `shouldBe` Just x
it "CreateEvent" $ property $ \(x :: CreateEvent ) -> decode (encode x) `shouldBe` Just x
it "DeleteEvent" $ property $ \(x :: DeleteEvent ) -> decode (encode x) `shouldBe` Just x
it "DeploymentEvent" $ property $ \(x :: DeploymentEvent ) -> decode (encode x) `shouldBe` Just x
it "DeploymentStatusEvent" $ property $ \(x :: DeploymentStatusEvent ) -> decode (encode x) `shouldBe` Just x
it "ForkEvent" $ property $ \(x :: ForkEvent ) -> decode (encode x) `shouldBe` Just x
it "GollumEvent" $ property $ \(x :: GollumEvent ) -> decode (encode x) `shouldBe` Just x
it "IssueCommentEvent" $ property $ \(x :: IssueCommentEvent ) -> decode (encode x) `shouldBe` Just x
it "IssuesEvent" $ property $ \(x :: IssuesEvent ) -> decode (encode x) `shouldBe` Just x
it "LabelEvent" $ property $ \(x :: LabelEvent ) -> decode (encode x) `shouldBe` Just x
it "MemberEvent" $ property $ \(x :: MemberEvent ) -> decode (encode x) `shouldBe` Just x
it "MembershipEvent" $ property $ \(x :: MembershipEvent ) -> decode (encode x) `shouldBe` Just x
it "MilestoneEvent" $ property $ \(x :: MilestoneEvent ) -> decode (encode x) `shouldBe` Just x
it "OrganizationEvent" $ property $ \(x :: OrganizationEvent ) -> decode (encode x) `shouldBe` Just x
it "PageBuildEvent" $ property $ \(x :: PageBuildEvent ) -> decode (encode x) `shouldBe` Just x
it "PingEvent" $ property $ \(x :: PingEvent ) -> decode (encode x) `shouldBe` Just x
it "PullRequestEvent" $ property $ \(x :: PullRequestEvent ) -> decode (encode x) `shouldBe` Just x
it "PullRequestReviewCommentEvent" $ property $ \(x :: PullRequestReviewCommentEvent) -> decode (encode x) `shouldBe` Just x
it "PullRequestReviewEvent" $ property $ \(x :: PullRequestReviewEvent ) -> decode (encode x) `shouldBe` Just x
it "PushEvent" $ property $ \(x :: PushEvent ) -> decode (encode x) `shouldBe` Just x
it "ReleaseEvent" $ property $ \(x :: ReleaseEvent ) -> decode (encode x) `shouldBe` Just x
it "RepositoryEvent" $ property $ \(x :: RepositoryEvent ) -> decode (encode x) `shouldBe` Just x
it "StatusEvent" $ property $ \(x :: StatusEvent ) -> decode (encode x) `shouldBe` Just x
it "WatchEvent" $ property $ \(x :: WatchEvent ) -> decode (encode x) `shouldBe` Just x