@@ -23,31 +23,31 @@ import Test.Tasty (TestTree)
2323import Test.Tasty.HUnit (assertEqual , testCase )
2424import TestHelpers (clearDatabase , runServerPart , runServerPartWithProgramQuery , withDatabase )
2525
26- -- | A Post response without timestamps (for comparison purposes)
27- data PostResponseNoTime = PostResponseNoTime
28- { postCode :: T. Text
29- , postDepartment :: T. Text
30- , postDescription :: T. Text
31- , postName :: T. Text
32- , postRequirements :: T. Text
26+ -- | A Program response without timestamps (for comparison purposes)
27+ data ProgramResponseNoTime = ProgramResponseNoTime
28+ { programCode :: T. Text
29+ , programDepartment :: T. Text
30+ , programDescription :: T. Text
31+ , programName :: T. Text
32+ , programRequirements :: T. Text
3333 } deriving (Show , Eq )
3434
35- instance FromJSON PostResponseNoTime where
36- parseJSON = withObject " Expected Object for Post " $ \ o -> do
37- code <- o .: " postCode "
38- dept <- o .: " postDepartment "
39- desc <- o .: " postDescription "
40- name <- o .: " postName "
41- reqs <- o .: " postRequirements "
42- return $ PostResponseNoTime code dept desc name reqs
35+ instance FromJSON ProgramResponseNoTime where
36+ parseJSON = withObject " Expected Object for Program " $ \ o -> do
37+ code <- o .: " programCode "
38+ dept <- o .: " programDepartment "
39+ desc <- o .: " programDescription "
40+ name <- o .: " programName "
41+ reqs <- o .: " programRequirements "
42+ return $ ProgramResponseNoTime code dept desc name reqs
4343
4444-- | List of test cases as (label, programs to insert, query params, expected output)
45- retrieveprogramTestCases :: [(String , [T. Text ], T. Text , Maybe PostResponseNoTime )]
45+ retrieveprogramTestCases :: [(String , [T. Text ], T. Text , Maybe ProgramResponseNoTime )]
4646retrieveprogramTestCases =
4747 [ (" Valid program code returns JSON"
4848 , [" ASMAJ1689" ]
4949 , " ASMAJ1689"
50- , Just (PostResponseNoTime " ASMAJ1689" " test" " test" " Other" " test" )
50+ , Just (ProgramResponseNoTime " ASMAJ1689" " test" " test" " Other" " test" )
5151 )
5252 , (" Invalid program code returns null JSON"
5353 , []
@@ -62,19 +62,19 @@ retrieveprogramTestCases =
6262 ]
6363
6464-- | Parse response and extract non-timestamp fields
65- parsePostResponse :: String -> Maybe PostResponseNoTime
66- parsePostResponse jsonStr = decode (BL. pack jsonStr)
65+ parseProgramResponse :: String -> Maybe ProgramResponseNoTime
66+ parseProgramResponse jsonStr = decode (BL. pack jsonStr)
6767
6868-- | Run a test case (case, input, expected output) on the retrieveProgram function.
69- runRetrieveProgramTest :: String -> [T. Text ] -> T. Text -> Maybe PostResponseNoTime -> TestTree
70- runRetrieveProgramTest label posts queryParam expected =
69+ runRetrieveProgramTest :: String -> [T. Text ] -> T. Text -> Maybe ProgramResponseNoTime -> TestTree
70+ runRetrieveProgramTest label programs queryParam expected =
7171 testCase label $ do
7272 runDb $ do
7373 clearDatabase
74- insertPrograms posts
74+ insertPrograms programs
7575 response <- runServerPartWithProgramQuery Controllers.Program. retrieveProgram (T. unpack queryParam)
7676 let actual = BL. unpack $ rsBody response
77- let parsedActual = parsePostResponse actual
77+ let parsedActual = parseProgramResponse actual
7878 assertEqual (" Unexpected JSON response body for" ++ label) expected parsedActual
7979
8080-- | Run all the retrieveProgram test cases
@@ -92,11 +92,11 @@ indexTestCases =
9292
9393-- | Run a test case (case, input, expected output) on the index function.
9494runIndexTest :: String -> [T. Text ] -> String -> TestTree
95- runIndexTest label posts expected =
95+ runIndexTest label programs expected =
9696 testCase label $ do
9797 runDb $ do
9898 clearDatabase
99- insertPrograms posts
99+ insertPrograms programs
100100 response <- runServerPart Controllers.Program. index
101101 let actual = BL. unpack $ rsBody response
102102 assertEqual (" Unexpected response body for " ++ label) expected actual
0 commit comments