Skip to content
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

test: Fix test cases for timeZone difference #148

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

kunalspathak
Copy link

test-parser.js expects Date fields of files/directory to match with
whatever specified in test case. However the expected date/time values
doesn't specify timezone.

Here is what ES6 spec says regaring missing timeZone.

If the time zone offset is absent, the date-time is interpreted as a local time.

On the other hand, the information returned by parseListEntry() is alway in UTC.
See ES6 spec for Date constructor

Hence if someone running test cases in timeZone other than UTC will always see mismatch
in timeZone as the actual date returned would be in UTC, while expected date would
be in UTC equivalent of datetime specified in expected property.

This issue has not surfaced in node+v8 because if timeZone is missing, it is
interpreted as UTC.

A quick test can verify this is FF nightly / Edge / Chrome

var x = new Date('2012-12-21T00:00:00.000');
x.toISOString();

// For PST timezone, this should be "2012-12-21T08:00:00.000Z" and not "2012-12-21T00:00:00.000Z". 

`test-parser.js` expects `Date` fields of files/directory to match with
whatever specified in test case. However the expected date/time values
doesn't specify timezone.

Here is what [ES6 spec](http://www.ecma-international.org/ecma-262/6.0/#sec-date-time-string-format) says regaring missing timeZone.
```doc
If the time zone offset is absent, the date-time is interpreted as a local time.
```

On the other hand, the information returned by `parseListEntry()` is alway in `UTC`.
See ES6 spec for [Date constructor](http://www.ecma-international.org/ecma-262/6.0/#sec-date-year-month-date-hours-minutes-seconds-ms)

Hence if someone running test cases in timeZone other than UTC will always see mismatch
in timeZone as the actual date returned would be in UTC, while expected date would
be in UTC equivalent of datetime specified in `expected` property.

This issue has not surfaced in node+v8 because if timeZone is missing, it is
interpreted as UTC.

A quick test can verify this is FF nightly / Edge / Chrome

```js
var x = new Date('2012-12-21T00:00:00.000');
x.toISOString();

// should be "2012-12-21T08:00:00.000Z" and not "2012-12-21T00:00:00.000Z"

```
icetee added a commit to icetee/node-ftp that referenced this pull request Jul 25, 2017
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.

1 participant