Make a specific error for unexpected global errors

This commit is contained in:
Jeroen Engels 2021-03-06 22:26:10 +01:00
parent 4cb8d74815
commit cc17889499
3 changed files with 55 additions and 3 deletions

View File

@ -573,8 +573,14 @@ expectNoErrors reviewResult =
runResults
|> List.map
(\{ errors, moduleName } () ->
List.isEmpty errors
|> Expect.true (FailureMessage.didNotExpectErrors moduleName errors)
if List.isEmpty errors then
Expect.pass
else if moduleName == "GLOBAL ERROR" then
Expect.fail (FailureMessage.didNotExpectGlobalErrors errors)
else
Expect.fail (FailureMessage.didNotExpectErrors moduleName errors)
)
|> (\expectations -> Expect.all expectations ())

View File

@ -4,7 +4,7 @@ module Review.Test.FailureMessage exposing
, underMismatch, expectedMoreErrors, tooManyErrors, locationNotFound, underMayNotBeEmpty, locationIsAmbiguousInSourceCode
, needToUsedExpectErrorsForModules, missingSources, duplicateModuleName, unknownModulesInExpectedErrors
, missingFixes, unexpectedFixes, fixedCodeMismatch, unchangedSourceAfterFix, invalidSourceAfterFix, hasCollisionsInFixRanges
, fixedCodeWhitespaceMismatch
, didNotExpectGlobalErrors, fixedCodeWhitespaceMismatch
)
{-| Failure messages for the `Review.Test` module.
@ -52,6 +52,21 @@ didNotExpectErrors moduleName errors =
""" ++ listErrorMessagesAndPositions errors)
didNotExpectGlobalErrors : List ReviewError -> String
didNotExpectGlobalErrors errors =
failureMessage "DID NOT EXPECT GLOBAL ERRORS"
("""I expected no global errors but found:
""" ++ listErrorMessages errors)
listErrorMessages : List ReviewError -> String
listErrorMessages errors =
errors
|> List.map (\error -> " - " ++ wrapInQuotes (Rule.errorMessage error))
|> String.join "\n"
parsingFailure : Bool -> { index : Int, source : String } -> String
parsingFailure isOnlyFile { index, source } =
let

View File

@ -13,6 +13,7 @@ all =
describe "Review.Test.FailureMessage"
[ parsingFailureTest
, didNotExpectErrorsTest
, didNotExpectGlobalErrorsTest
, messageMismatchTest
, underMismatchTest
, unexpectedDetailsTest
@ -118,6 +119,36 @@ I expected no errors for module `ModuleName` but found:
"""
didNotExpectGlobalErrorsTest : Test
didNotExpectGlobalErrorsTest =
test "didNotExpectGlobalErrors" <|
\() ->
let
errors : List ReviewError
errors =
[ Review.Error.error
{ message = "Some error"
, details = [ "Some details" ]
}
dummyRange
, Review.Error.error
{ message = "Some other error"
, details = [ "Some other details" ]
}
dummyRange
]
in
FailureMessage.didNotExpectGlobalErrors errors
|> expectMessageEqual """
\u{001B}[31m\u{001B}[1mDID NOT EXPECT GLOBAL ERRORS\u{001B}[22m\u{001B}[39m
I expected no global errors but found:
- `Some error`
- `Some other error`
"""
messageMismatchTest : Test
messageMismatchTest =
test "messageMismatch" <|