{-# LANGUAGE OverloadedStrings #-} module SchemaDump where import ChatClient (withTmpFiles) import Control.DeepSeq import Control.Monad (void) import Simplex.Chat.Store (createChatStore) import System.Process (readCreateProcess, shell) import Test.Hspec testDB :: FilePath testDB = "tests/tmp/test_chat.db" schema :: FilePath schema = "src/Simplex/Chat/Migrations/chat_schema.sql" schemaDumpTest :: Spec schemaDumpTest = it "verify and overwrite schema dump" testVerifySchemaDump testVerifySchemaDump :: IO () testVerifySchemaDump = withTmpFiles $ do void $ createChatStore testDB "" False void $ readCreateProcess (shell $ "touch " <> schema) "" savedSchema <- readFile schema savedSchema `deepseq` pure () void $ readCreateProcess (shell $ "sqlite3 " <> testDB <> " '.schema --indent' > " <> schema) "" currentSchema <- readFile schema savedSchema `shouldBe` currentSchema