@@ -6,7 +6,7 @@ import Control.Monad.Eff (Eff)
6import Control.Monad.Eff.Console (CONSOLE)
6import Control.Monad.Eff.Console (CONSOLE)
7import Control.Monad.Except (runExcept)
7import Control.Monad.Except (runExcept)
8import Data.DateTime (Date, DateTime(..), Month(..), canonicalDate)
8import Data.DateTime (Date, DateTime(..), Month(..), canonicalDate)
9−import Data.Either (Either(..), isLeft)
9+import Data.Either (Either(..), fromRight, isLeft)
10import Data.Enum (toEnum)
10import Data.Enum (toEnum)
11import Data.Foldable (intercalate)
11import Data.Foldable (intercalate)
12import Data.Foreign (renderForeignError)
12import Data.Foreign (renderForeignError)
@@ -18,7 +18,7 @@ import Data.Maybe (Maybe(..), isJust, isNothing)
18import Data.Symbol (SProxy(..))
18import Data.Symbol (SProxy(..))
19import Data.Time (Time(..))
19import Data.Time (Time(..))
20import Data.Variant (inj)
20import Data.Variant (inj)
21−import Partial.Unsafe (unsafeCrashWith)
21+import Partial.Unsafe (unsafeCrashWith, unsafePartial)
22import Test.Assert (ASSERT, assert')
22import Test.Assert (ASSERT, assert')
24type Tests = Eff (console :: CONSOLE, assert :: ASSERT) Unit
24type Tests = Eff (console :: CONSOLE, assert :: ASSERT) Unit
@@ -55,7 +55,21 @@ main = do
55 locales :: LocalesOption
55 locales :: LocalesOption
56 locales = inj (SProxy :: SProxy "locale") "en-US"
56 locales = inj (SProxy :: SProxy "locale") "en-US"
59+ createDateTimeFormatter (inj (SProxy :: SProxy "locale") "") opts
61+ opts :: DateTimeFormatOptions'
63+ (DateTimeFormatOptions
64+ { localeMatcher: Nothing
65+ , timeZone: (Just (TimeZone "Europe/London"))
67+ , formatMatcher: Nothing
69+ (inj (SProxy :: SProxy "hourMinute") (HourMinute {hour: TwoDigit, minute: TwoDigit}))
58− fmtHourMinute =
72+ fmtHourMinute = unsafePartial $ fromRight $
59 createDateTimeFormatter locales opts
73 createDateTimeFormatter locales opts
61 opts :: DateTimeFormatOptions'
75 opts :: DateTimeFormatOptions'
@@ -69,7 +83,7 @@ main = do
69 (inj (SProxy :: SProxy "hourMinute") (HourMinute {hour: TwoDigit, minute: TwoDigit}))
83 (inj (SProxy :: SProxy "hourMinute") (HourMinute {hour: TwoDigit, minute: TwoDigit}))
72− fmtHourMinuteSecond =
86+ fmtHourMinuteSecond = unsafePartial $ fromRight $
73 createDateTimeFormatter locales opts
87 createDateTimeFormatter locales opts
75 opts :: DateTimeFormatOptions'
89 opts :: DateTimeFormatOptions'
@@ -83,7 +97,7 @@ main = do
83 (inj (SProxy :: SProxy "hourMinuteSecond") (HourMinuteSecond {hour: Numeric, minute: Numeric, second: Numeric}))
97 (inj (SProxy :: SProxy "hourMinuteSecond") (HourMinuteSecond {hour: Numeric, minute: Numeric, second: Numeric}))
86− fmtWeekdayYearMonthDayHourMinuteSecond =
100+ fmtWeekdayYearMonthDayHourMinuteSecond = unsafePartial $ fromRight $
87 createDateTimeFormatter locales opts
101 createDateTimeFormatter locales opts
89 opts :: DateTimeFormatOptions'
103 opts :: DateTimeFormatOptions'
@@ -109,7 +123,7 @@ main = do
112− fmtWeekdayYearMonthDay =
126+ fmtWeekdayYearMonthDay = unsafePartial $ fromRight $
113 createDateTimeFormatter locales opts
127 createDateTimeFormatter locales opts
115 opts :: DateTimeFormatOptions'
129 opts :: DateTimeFormatOptions'
@@ -132,7 +146,7 @@ main = do
135− fmtYearMonthDay =
149+ fmtYearMonthDay = unsafePartial $ fromRight $
136 createDateTimeFormatter locales opts
150 createDateTimeFormatter locales opts
138 opts :: DateTimeFormatOptions'
152 opts :: DateTimeFormatOptions'
@@ -154,7 +168,7 @@ main = do
157− fmtYearMonth =
171+ fmtYearMonth = unsafePartial $ fromRight $
158 createDateTimeFormatter locales opts
172 createDateTimeFormatter locales opts
160 opts :: DateTimeFormatOptions'
174 opts :: DateTimeFormatOptions'
@@ -175,7 +189,7 @@ main = do
178− fmtMonthDay =
192+ fmtMonthDay = unsafePartial $ fromRight $
179 createDateTimeFormatter locales opts
193 createDateTimeFormatter locales opts
181 opts :: DateTimeFormatOptions'
195 opts :: DateTimeFormatOptions'
@@ -196,7 +210,7 @@ main = do
199− fmtEraYear =
213+ fmtEraYear = unsafePartial $ fromRight $
200 createDateTimeFormatter locales opts
214 createDateTimeFormatter locales opts
202 opts :: DateTimeFormatOptions EraYear
216 opts :: DateTimeFormatOptions EraYear
@@ -217,7 +231,7 @@ main = do
220− fmtEra =
234+ fmtEra = unsafePartial $ fromRight $
221 createDateTimeFormatter locales opts
235 createDateTimeFormatter locales opts
223 opts :: DateTimeFormatOptions Era
237 opts :: DateTimeFormatOptions Era
@@ -262,6 +276,9 @@ main = do
262 case jsDate of
276 case jsDate of
263 Nothing -> unsafeCrashWith "jsDate not parsed"
277 Nothing -> unsafeCrashWith "jsDate not parsed"
264 Just d -> do
278 Just d -> do
280+ assert' "fmtError expected to return error" $ isLeft fmtError
265 let fmtDate1 = formatJSDate fmtWeekdayYearMonthDayHourMinuteSecond d
282 let fmtDate1 = formatJSDate fmtWeekdayYearMonthDayHourMinuteSecond d
266 fmtDate1Expected = "Tue, January 2, 2018, 12:00:00 PM"
283 fmtDate1Expected = "Tue, January 2, 2018, 12:00:00 PM"
267 assert' ("fmtWeekdayYearMonthDayHourMinuteSecond: got: '" <> fmtDate1 <> "' expected: '" <> fmtDate1Expected <> "'")
284 assert' ("fmtWeekdayYearMonthDayHourMinuteSecond: got: '" <> fmtDate1 <> "' expected: '" <> fmtDate1Expected <> "'")