Skip to content

Conversation

@jamesrweb
Copy link
Contributor

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! 🎉

},
"test-dependencies": {
"elm-explorations/test": "1.0.0 <= v < 2.0.0"
"elm-explorations/test": "2.0.0 <= v < 3.0.0"
Copy link
Contributor Author

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.

utcOffsetMinutesFromParts multiplier hours minutes =
-- multiplier is either 1 or -1 (for negative UTC offsets)
multiplier * (hours * 60) + minutes
multiplier * ((hours * 60) + minutes)
Copy link
Contributor Author

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.

import Expect
import Fuzz
import Iso8601
import Json.Decode exposing (decodeString, errorToString)
Copy link
Contributor Author

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.

\_ ->
Iso8601.toTime "2019-05-30T06:30"
|> Expect.equal (Ok (Time.millisToPosix 1559197800000))
, test "toTime supports negative timestamps (French Polynesia: Marquesas Islands)" <|
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test cases for the examples provided by @pd9333 in #31.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Minutes of negative offset also need multiplier

1 participant