-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix negative timestamps parsing incorrectly #32
base: master
Are you sure you want to change the base?
Conversation
@@ -15,6 +15,6 @@ | |||
"elm/time": "1.0.0 <= v < 2.0.0" | |||
}, | |||
"test-dependencies": { | |||
"elm-explorations/test": "1.0.0 <= v < 2.0.0" | |||
"elm-explorations/test": "2.0.0 <= v < 3.0.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Required change for the elm-test
command to run.
@@ -342,7 +342,7 @@ utcOffsetInMinutes = | |||
utcOffsetMinutesFromParts : Int -> Int -> Int -> Int | |||
utcOffsetMinutesFromParts multiplier hours minutes = | |||
-- multiplier is either 1 or -1 (for negative UTC offsets) | |||
multiplier * (hours * 60) + minutes | |||
multiplier * ((hours * 60) + minutes) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The actual fix to correct the implementation.
@@ -3,9 +3,9 @@ module Example exposing (knownValues, reflexive) | |||
import Expect | |||
import Fuzz | |||
import Iso8601 | |||
import Json.Decode exposing (decodeString, errorToString) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Automatically sorted by elm-format
.
@@ -99,11 +99,20 @@ knownValues = | |||
\_ -> | |||
Iso8601.toTime "2019-05-30T06:30" | |||
|> Expect.equal (Ok (Time.millisToPosix 1559197800000)) | |||
, test "toTime supports negative timestamps (French Polynesia: Marquesas Islands)" <| |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Closes #31
Currently the
utcOffsetMinutesFromParts
helper calculates the offset incorrectly by a slim margin, but enough to be concerning, when provided with negative timestamps such as those in the tests provided as part of this PR.To validate the changes you can paste the test case ISO-8601 strings into a converter like Dencode to see the stamps are correctly conforming as intended.
This is actually quite a surprising issue so kudos to @pd9333 for catching this one! 🎉