packages feed

hls-tactics-plugin-1.1.0.0: test/CodeAction/AutoSpec.hs

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings     #-}
{-# LANGUAGE ScopedTypeVariables   #-}
{-# LANGUAGE TypeOperators         #-}
{-# LANGUAGE ViewPatterns          #-}

module CodeAction.AutoSpec where

import Wingman.Types
import Test.Hspec
import Utils
import Wingman.FeatureSet (allFeatures)


spec :: Spec
spec = do
  let autoTest = goldenTest Auto ""
      autoTestNoWhitespace = goldenTestNoWhitespace Auto ""

  describe "golden" $ do
    autoTest 11  8 "AutoSplitGADT.hs"
    autoTest  2 11 "GoldenEitherAuto.hs"
    autoTest  4 12 "GoldenJoinCont.hs"
    autoTest  3 11 "GoldenIdentityFunctor.hs"
    autoTest  7 11 "GoldenIdTypeFam.hs"
    autoTest  2 15 "GoldenEitherHomomorphic.hs"
    autoTest  2  8 "GoldenNote.hs"
    autoTest  2 12 "GoldenPureList.hs"
    autoTest  2 12 "GoldenListFmap.hs"
    autoTest  2 13 "GoldenFromMaybe.hs"
    autoTest  2 10 "GoldenFoldr.hs"
    autoTest  2  8 "GoldenSwap.hs"
    autoTest  4 11 "GoldenFmapTree.hs"
    autoTest  7 13 "GoldenGADTAuto.hs"
    autoTest  2 12 "GoldenSwapMany.hs"
    autoTest  4 12 "GoldenBigTuple.hs"
    autoTest  2 10 "GoldenShow.hs"
    autoTest  2 15 "GoldenShowCompose.hs"
    autoTest  2  8 "GoldenShowMapChar.hs"
    autoTest  7  8 "GoldenSuperclass.hs"
    autoTest  2 12 "GoldenSafeHead.hs"
    autoTest  2 12 "FmapBoth.hs"
    autoTest  7  8 "RecordCon.hs"
    autoTest  6  8 "NewtypeRecord.hs"
    autoTest  2 14 "FmapJoin.hs"
    autoTest  2  9 "Fgmap.hs"
    autoTest  4 19 "FmapJoinInLet.hs"
    autoTest  9 12 "AutoEndo.hs"
    autoTest  2 16 "AutoEmptyString.hs"
    autoTest  7 35 "AutoPatSynUse.hs"
    autoTest  2 28 "AutoZip.hs"
    autoTest  2 17 "AutoInfixApply.hs"
    autoTest  2 19 "AutoInfixApplyMany.hs"
    autoTest  2 25 "AutoInfixInfix.hs"

    failing "flaky in CI" $
      autoTest 2 11 "GoldenApplicativeThen.hs"

    failing "not enough auto gas" $
      autoTest 5 18 "GoldenFish.hs"

  describe "theta" $ do
    autoTest 12 10 "AutoThetaFix.hs"
    autoTest  7 20 "AutoThetaRankN.hs"
    autoTest  6 10 "AutoThetaGADT.hs"
    autoTest  6  8 "AutoThetaGADTDestruct.hs"
    autoTest  4  8 "AutoThetaEqCtx.hs"
    autoTest  6 10 "AutoThetaEqGADT.hs"
    autoTest  6  8 "AutoThetaEqGADTDestruct.hs"
    autoTest  6 10 "AutoThetaRefl.hs"
    autoTest  6  8 "AutoThetaReflDestruct.hs"

  describe "known" $ do
    autoTest 25 13 "GoldenArbitrary.hs"
    autoTestNoWhitespace
              6 10 "KnownBigSemigroup.hs"
    autoTest  4 10 "KnownThetaSemigroup.hs"
    autoTest  6 10 "KnownCounterfactualSemigroup.hs"
    autoTest 10 10 "KnownModuleInstanceSemigroup.hs"
    autoTest  4 22 "KnownDestructedSemigroup.hs"
    autoTest  4 10 "KnownMissingSemigroup.hs"
    autoTest  7 12 "KnownMonoid.hs"
    autoTest  7 12 "KnownPolyMonoid.hs"
    autoTest  7 12 "KnownMissingMonoid.hs"


  describe "messages" $ do
    mkShowMessageTest allFeatures Auto "" 2 8 "MessageForallA.hs" TacticErrors