packages feed

agent-push-kit-0.1.0: tests/Test.hs

{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE PartialTypeSignatures #-}

module Main where

import Data.Typeable (Proxy(..))
import Test.Hspec
import Test.Hspec.QuickCheck

import PropMime
import Instances ()

import AgentPushKit.Model
import AgentPushKit.MimeTypes

main :: IO ()
main =
  hspec $ modifyMaxSize (const 10) $ do
    describe "JSON instances" $ do
      pure ()
      propMimeEq MimeJSON (Proxy :: Proxy AcceptedResponse)
      propMimeEq MimeJSON (Proxy :: Proxy AddMemberInput)
      propMimeEq MimeJSON (Proxy :: Proxy AgentToken)
      propMimeEq MimeJSON (Proxy :: Proxy AgentTokenCreated)
      propMimeEq MimeJSON (Proxy :: Proxy ApiKeySummary)
      propMimeEq MimeJSON (Proxy :: Proxy AuthResponse)
      propMimeEq MimeJSON (Proxy :: Proxy CreateAgentTokenInput)
      propMimeEq MimeJSON (Proxy :: Proxy CreateOrganizationInput)
      propMimeEq MimeJSON (Proxy :: Proxy CurrentAccount)
      propMimeEq MimeJSON (Proxy :: Proxy DeletedResponse)
      propMimeEq MimeJSON (Proxy :: Proxy DeliverySummary)
      propMimeEq MimeJSON (Proxy :: Proxy Device)
      propMimeEq MimeJSON (Proxy :: Proxy DisabledResponse)
      propMimeEq MimeJSON (Proxy :: Proxy ErrorResponse)
      propMimeEq MimeJSON (Proxy :: Proxy EventDetail)
      propMimeEq MimeJSON (Proxy :: Proxy EventFilter)
      propMimeEq MimeJSON (Proxy :: Proxy EventPage)
      propMimeEq MimeJSON (Proxy :: Proxy EventSummary)
      propMimeEq MimeJSON (Proxy :: Proxy FilterGroup)
      propMimeEq MimeJSON (Proxy :: Proxy FilterNot)
      propMimeEq MimeJSON (Proxy :: Proxy HealthResponse)
      propMimeEq MimeJSON (Proxy :: Proxy IngestionResult)
      propMimeEq MimeJSON (Proxy :: Proxy InheritedResponse)
      propMimeEq MimeJSON (Proxy :: Proxy Membership)
      propMimeEq MimeJSON (Proxy :: Proxy MembershipUser)
      propMimeEq MimeJSON (Proxy :: Proxy Organization)
      propMimeEq MimeJSON (Proxy :: Proxy OrganizationApiKeyCreated)
      propMimeEq MimeJSON (Proxy :: Proxy OrganizationCount)
      propMimeEq MimeJSON (Proxy :: Proxy OrganizationCreated)
      propMimeEq MimeJSON (Proxy :: Proxy OrganizationRecord)
      propMimeEq MimeJSON (Proxy :: Proxy PasswordLoginInput)
      propMimeEq MimeJSON (Proxy :: Proxy PasswordResetCompleteInput)
      propMimeEq MimeJSON (Proxy :: Proxy PasswordResetRequestInput)
      propMimeEq MimeJSON (Proxy :: Proxy PreferenceRecord)
      propMimeEq MimeJSON (Proxy :: Proxy ProviderLoginInput)
      propMimeEq MimeJSON (Proxy :: Proxy RegisterDeviceInput)
      propMimeEq MimeJSON (Proxy :: Proxy RegisterInput)
      propMimeEq MimeJSON (Proxy :: Proxy RegisterWebPushSubscriptionInput)
      propMimeEq MimeJSON (Proxy :: Proxy RegisterWebPushSubscriptionInputKeys)
      propMimeEq MimeJSON (Proxy :: Proxy RevokedResponse)
      propMimeEq MimeJSON (Proxy :: Proxy SearchEventsInput)
      propMimeEq MimeJSON (Proxy :: Proxy SendEventInput)
      propMimeEq MimeJSON (Proxy :: Proxy Service)
      propMimeEq MimeJSON (Proxy :: Proxy ServiceAllOfCount)
      propMimeEq MimeJSON (Proxy :: Proxy ServicePreference)
      propMimeEq MimeJSON (Proxy :: Proxy ServiceSummary)
      propMimeEq MimeJSON (Proxy :: Proxy SetEnabledInput)
      propMimeEq MimeJSON (Proxy :: Proxy TextFilterCondition)
      propMimeEq MimeJSON (Proxy :: Proxy TimeFilterCondition)
      propMimeEq MimeJSON (Proxy :: Proxy TypeOverride)
      propMimeEq MimeJSON (Proxy :: Proxy User)
      propMimeEq MimeJSON (Proxy :: Proxy WebPushConfiguration)
      propMimeEq MimeJSON (Proxy :: Proxy WebPushSubscription)