| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- module Test.UIStringParser
- ( main
- )
- where
- import Prelude
- import Data.Date (Month(..))
- import Data.Either (Either(..))
- import Effect (Effect)
- import LinkedIn.UI.Basic.Parser (durationP, monthYearP, timeSpanP)
- import LinkedIn.UI.Basic.Types (Duration(..), TimeSpan(..))
- import LinkedIn.UI.Strings.Parser (uiStringDurationP, uiStringdotSeparatedP)
- import LinkedIn.UI.Strings.Types (UIString(..))
- import Parsing (ParseError(..), Position(..), runParser)
- import Test.Assert (assertEqual)
- import Test.Utils (toMonthYear')
- testMonthYearParser ∷ Effect Unit
- testMonthYearParser = do
- assertEqual {
- actual: run "fév. 2004",
- expected: Right(toMonthYear' February 2004)
- }
- assertEqual {
- actual: run "juin 2012",
- expected: Right(toMonthYear' June 2012)
- }
- where run s = runParser s monthYearP
- testTimeSpanParser ∷ Effect Unit
- testTimeSpanParser = do
- assertEqual {
- actual: run "juin 2012 - aujourd’hui",
- expected: Right(TimeSpanToToday (toMonthYear' June 2012))
- }
- assertEqual {
- actual: run "juin 2012 - mai 2021",
- expected: Right(TimeSpanBounded (toMonthYear' June 2012) (toMonthYear' May 2021))
- }
- where run s = runParser s timeSpanP
- testDurationParser ∷ Effect Unit
- testDurationParser = do
- assertEqual {
- actual: run "2 ans 3 mois",
- expected: Right(YearsMonth 2 3)
- }
- assertEqual {
- actual: run "1 an 3 mois",
- expected: Right(YearsMonth 1 3)
- }
- assertEqual {
- actual: run "3 mois",
- expected: Right(Months 3)
- }
- assertEqual {
- actual: run "3 ans",
- expected: Right(Years 3)
- }
- assertEqual {
- actual: run "1 an",
- expected: Right(Years 1)
- }
- where run s = runParser s durationP
- testUIParserDuration ∷ Effect Unit
- testUIParserDuration = do
- assertEqual {
- actual: run "2 ans 3 mois",
- expected: Right(UIStringDuration (YearsMonth 2 3))
- }
- where run s = runParser s uiStringDurationP
- testUIParserDotSeparated ∷ Effect Unit
- testUIParserDotSeparated = do
- assertEqual {
- actual: run "some text 1 · some text 2",
- expected: Right(UIStringDotSeparated (UIStringPlain "some text 1") (UIStringPlain "some text 2"))
- }
- assertEqual {
- actual: run "· some text after a dot",
- expected: Right(UIStringDotSeparated (UIStringPlain "") (UIStringPlain "some text after a dot"))
- }
- assertEqual {
- actual: run "some text before a dot ·",
- expected: Right(UIStringDotSeparated (UIStringPlain "some text before a dot") (UIStringPlain ""))
- }
- assertEqual {
- actual: run "string with no dot",
- expected: (Left (ParseError "Expected '•'" (Position { column: 19, index: 18, line: 1 })))
- }
- where run s = runParser s uiStringdotSeparatedP
- main :: Effect Unit
- main = do
- testMonthYearParser
- testTimeSpanParser
- testDurationParser
- testUIParserDuration
- testUIParserDotSeparated
|