122 lines
6.3 KiB
JavaScript
122 lines
6.3 KiB
JavaScript
import test from 'tape'
|
|
import nlp from './_lib.js'
|
|
|
|
test('text sets timezone', function (t) {
|
|
const arr = [
|
|
['today', '2019-01-01T00:00:00.000Z'], //london
|
|
['today in PST', '2019-01-01T00:00:00.000-08:00'],
|
|
['today in eastern time', '2019-01-01T00:00:00.000-05:00'],
|
|
['today GMT+9', '2019-01-01T00:00:00.000-09:00'],
|
|
['tomorrow', '2019-01-02T00:00:00.000Z'],
|
|
['yesterday', '2018-12-31T00:00:00.000Z'],
|
|
['tomorrow in PST', '2019-01-02T00:00:00.000-08:00'],
|
|
['yesterday in PST', '2018-12-31T00:00:00.000-08:00'],
|
|
['today in pacific time', '2019-01-01T00:00:00.000-08:00'],
|
|
['today in pacific standard time', '2019-01-01T00:00:00.000-08:00'],
|
|
['today in EST', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in est', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in EDT', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in CST', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in MST', '2019-01-01T00:00:00.000-07:00'],
|
|
['today in PDT', '2019-01-01T00:00:00.000-08:00'],
|
|
['today in central time', '2019-01-01T00:00:00.000-06:00'],
|
|
['today in mountain time', '2019-01-01T00:00:00.000-07:00'],
|
|
['today in alaskan time', '2019-01-01T00:00:00.000-09:00'],
|
|
['today in hawaiian time', '2019-01-01T00:00:00.000-10:00'],
|
|
['today in hawaii time', '2019-01-01T00:00:00.000-10:00'],
|
|
['today in atlantic time', '2019-01-01T00:00:00.000-04:00'],
|
|
['today in newfoundland time', '2019-01-01T00:00:00.000-03:30'],
|
|
['today in eastern standard time', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in pacific daylight time', '2019-01-01T00:00:00.000-08:00'],
|
|
['today in central standard time', '2019-01-01T00:00:00.000-06:00'],
|
|
['today in mountain standard time', '2019-01-01T00:00:00.000-07:00'],
|
|
['today in GMT', '2019-01-01T00:00:00.000Z'],
|
|
['today in gmt', '2019-01-01T00:00:00.000Z'],
|
|
['today in UTC', '2019-01-01T00:00:00.000Z'],
|
|
['today in utc', '2019-01-01T00:00:00.000Z'],
|
|
['today GMT+0', '2019-01-01T00:00:00.000Z'],
|
|
['today GMT+1', '2019-01-01T00:00:00.000-01:00'],
|
|
['today GMT+5', '2019-01-01T00:00:00.000-05:00'],
|
|
['today GMT+8', '2019-01-01T00:00:00.000-08:00'],
|
|
['today UTC+5', '2019-01-01T00:00:00.000+05:00'],
|
|
['today utc+5', '2019-01-01T00:00:00.000+05:00'],
|
|
['today in GMT+5', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in central european time', '2019-01-01T00:00:00.000+01:00'],
|
|
['today in CET', '2019-01-01T00:00:00.000+01:00'],
|
|
['today in british time', '2019-01-01T00:00:00.000Z'],
|
|
['today in BST', '2019-01-01T00:00:00.000Z'],
|
|
['today in MSK', '2019-01-01T00:00:00.000+03:00'],
|
|
['today in japan time', '2019-01-01T00:00:00.000+09:00'],
|
|
['today in JST', '2019-01-01T00:00:00.000Z'],
|
|
['today in australian eastern standard time', '2019-01-01T00:00:00.000+10:00'],
|
|
['today in AEST', '2019-01-01T00:00:00.000+10:00'],
|
|
['today in peru time', '2019-01-01T00:00:00.000-05:00'],
|
|
['today in brazil time', '2019-01-01T00:00:00.000-03:00'],
|
|
['today in argentina time', '2019-01-01T00:00:00.000-03:00'],
|
|
['today in venezuela time', '2019-01-01T00:00:00.000-04:00'],
|
|
['january 1st in PST', '2019-01-01T00:00:00.000-08:00'],
|
|
['january 1st in eastern time', '2019-01-01T00:00:00.000-05:00'],
|
|
['jan 1 in pacific time', '2019-01-01T00:00:00.000-08:00'],
|
|
['jan 1 in GMT+9', '2019-01-01T00:00:00.000-09:00'],
|
|
['2019-01-01 in PST', '2019-01-01T00:00:00.000-08:00'],
|
|
['2019-01-01 in eastern time', '2019-01-01T00:00:00.000-05:00'],
|
|
['on january 1st in PST', '2019-01-01T00:00:00.000-08:00'],
|
|
['9am PST', '2019-01-01T09:00:00.000-08:00'],
|
|
['4pm eastern time', '2019-01-01T16:00:00.000-05:00'],
|
|
['noon pacific time', '2019-01-01T12:00:00.000-08:00'],
|
|
['march 15th in PST', '2019-03-15T00:00:00.000-07:00'],
|
|
['march 15th in eastern time', '2019-03-15T00:00:00.000-04:00'],
|
|
['february 2nd in central time', '2019-02-02T00:00:00.000-06:00'],
|
|
// ['today GMT-9', '2019-01-01T00:00:00.000-09:00'],
|
|
]
|
|
const context = {
|
|
today: '2019-01-01',
|
|
timezone: 'Europe/London',
|
|
}
|
|
arr.forEach((a) => {
|
|
const doc = nlp(a[0])
|
|
const json = doc.dates(context).json()[0] || {}
|
|
t.equal(json.dates.start, a[1], a[0])
|
|
})
|
|
t.end()
|
|
})
|
|
|
|
test('set timezone context', function (t) {
|
|
const phrase = 'April 7th 2018'
|
|
const arr = [
|
|
{ tz: 'Asia/Karachi', start: '2018-04-07T00:00:00.000+05:00' },
|
|
{ tz: 'Asia/Vladivostok', start: '2018-04-07T00:00:00.000+10:00' },
|
|
{ tz: 'Asia/Tokyo', start: '2018-04-07T00:00:00.000+09:00' },
|
|
{ tz: 'Asia/Shanghai', start: '2018-04-07T00:00:00.000+08:00' },
|
|
{ tz: 'Asia/Kolkata', start: '2018-04-07T00:00:00.000+05:30' },
|
|
{ tz: 'Asia/Dubai', start: '2018-04-07T00:00:00.000+04:00' },
|
|
{ tz: 'Asia/Singapore', start: '2018-04-07T00:00:00.000+08:00' },
|
|
{ tz: 'Asia/Bangkok', start: '2018-04-07T00:00:00.000+07:00' },
|
|
{ tz: 'Europe/London', start: '2018-04-07T00:00:00.000+01:00' },
|
|
{ tz: 'Europe/Paris', start: '2018-04-07T00:00:00.000+02:00' },
|
|
{ tz: 'Europe/Berlin', start: '2018-04-07T00:00:00.000+02:00' },
|
|
{ tz: 'Europe/Moscow', start: '2018-04-07T00:00:00.000+03:00' },
|
|
{ tz: 'America/New_York', start: '2018-04-07T00:00:00.000-04:00' },
|
|
{ tz: 'America/Los_Angeles', start: '2018-04-07T00:00:00.000-07:00' },
|
|
{ tz: 'America/Chicago', start: '2018-04-07T00:00:00.000-05:00' },
|
|
{ tz: 'America/Denver', start: '2018-04-07T00:00:00.000-06:00' },
|
|
{ tz: 'America/Toronto', start: '2018-04-07T00:00:00.000-04:00' },
|
|
{ tz: 'America/Vancouver', start: '2018-04-07T00:00:00.000-07:00' },
|
|
{ tz: 'America/Sao_Paulo', start: '2018-04-07T00:00:00.000-03:00' },
|
|
{ tz: 'America/Mexico_City', start: '2018-04-07T00:00:00.000-06:00' },
|
|
{ tz: 'Australia/Sydney', start: '2018-04-07T00:00:00.000+10:00' },
|
|
{ tz: 'Australia/Perth', start: '2018-04-07T00:00:00.000+08:00' },
|
|
{ tz: 'Pacific/Auckland', start: '2018-04-07T00:00:00.000+12:00' },
|
|
{ tz: 'Pacific/Honolulu', start: '2018-04-07T00:00:00.000-10:00' },
|
|
{ tz: 'Africa/Cairo', start: '2018-04-07T00:00:00.000+02:00' },
|
|
{ tz: 'Africa/Johannesburg', start: '2018-04-07T00:00:00.000+02:00' },
|
|
{ tz: 'Canada/Eastern', start: '2018-04-07T00:00:00.000-04:00' },
|
|
{ tz: 'Canada/Pacific', start: '2018-04-07T00:00:00.000-07:00' },
|
|
]
|
|
arr.forEach((a) => {
|
|
const json = nlp(phrase).dates({ timezone: a.tz }).json()[0] || {}
|
|
t.equal(json.dates.start, a.start, a.tz)
|
|
})
|
|
t.end()
|
|
})
|