module RoundTripSpec (main, spec) where import Test.Hspec import Language.Haskell.Refact.Refactoring.RoundTrip import TestUtils import System.Directory -- --------------------------------------------------------------------- main :: IO () main = do hspec spec spec :: Spec spec = do describe "roundtrip" $ do it "roundtrips B" $ do r <- ct $ roundTrip defaultTestSettings testOptions "Case/BSimpleExpected.hs" -- r <- ct $ roundTrip logTestSettings testOptions "Case/BSimpleExpected.hs" r' <- ct $ mapM makeRelativeToCurrentDirectory r r' `shouldBe` ["Case/BSimpleExpected.hs"] diff <- compareFiles "./test/testdata/Case/BSimpleExpected.refactored.hs" "./test/testdata/Case/BSimpleExpected.hs" diff `shouldBe` [] -- --------------------------------- it "roundtrips FooExpected" $ do r <- ct $ roundTrip defaultTestSettings testOptions "Case/FooExpected.hs" -- r <- ct $ roundTrip logTestSettings testOptions "Case/FooExpected.hs" r' <- ct $ mapM makeRelativeToCurrentDirectory r r' `shouldBe` ["Case/FooExpected.hs"] diff <- compareFiles "./test/testdata/Case/FooExpected.refactored.hs" "./test/testdata/Case/FooExpected.hs" diff `shouldBe` [] -- --------------------------------- it "roundtrips FExpected" $ do r <- ct $ roundTrip defaultTestSettings testOptions "Case/FExpected.hs" -- r <- ct $ roundTrip logTestSettings testOptions "Case/FExpected.hs" r' <- ct $ mapM makeRelativeToCurrentDirectory r r' `shouldBe` ["Case/FExpected.hs"] diff <- compareFiles "./test/testdata/Case/FExpected.refactored.hs" "./test/testdata/Case/FExpected.hs" diff `shouldBe` [] -- --------------------------------- it "roundtrips CExpected" $ do r <- ct $ roundTrip defaultTestSettings testOptions "Case/CExpected.hs" -- r <- ct $ roundTrip logTestSettings testOptions "Case/CExpected.hs" r' <- ct $ mapM makeRelativeToCurrentDirectory r r' `shouldBe` ["Case/CExpected.hs"] diff <- compareFiles "./test/testdata/Case/CExpected.refactored.hs" "./test/testdata/Case/CExpected.hs" diff `shouldBe` [] -- ---------------------------------------------------------------------