Commit Graph

256 Commits

Author SHA1 Message Date
André Bargull 4aa9379068 Temporal: Coverage for Temporal.ZonedDateTime 2025-01-09 16:33:51 -08:00
André Bargull fd979d85d4 Fix strict mode error 2024-11-19 17:02:40 +01:00
Tim Chevalier b7822bb0b8
Temporal: Move tests for ZonedDateTime/p/{since, until} out of staging (#4293)
Co-authored-by: Philip Chimento <philip.chimento@gmail.com>
2024-11-01 11:02:32 -07:00
Tim Chevalier ccf8977b1c Temporal: Split up ZonedDateTime/old/string-parsing.js and move out of staging 2024-10-31 16:05:30 -07:00
Tim Chevalier 8cc0560713
Temporal: Move all tests out of ZonedDateTime/old/with.js under staging into separate files under test/built-ins (#4297)
Co-authored-by: Philip Chimento <philip.chimento@gmail.com>
2024-10-31 13:34:57 -07:00
Tim Chevalier 0f6b269400 Temporal: Move ZonedDateTime order-of-operations tests out of staging 2024-10-31 13:13:20 -07:00
Tim Chevalier bf46ed66b6 Temporal: move tests for ZonedDateTime/p/{toInstant, toPlainDate, toPlainTime, toString} 2024-10-31 13:08:38 -07:00
Tim Chevalier 7a4426e2b2 Temporal: Move remaining tests from Temporal/ZonedDateTime/old under staging into separate files under test/built-ins
Includes withPlainDateTime and withTimeZone
2024-10-31 11:58:25 -07:00
Tim Chevalier de68177f59 Temporal: Move ZonedDateTime/prototype/round tests and one other ZonedDateTime test out of staging 2024-10-30 17:58:43 -07:00
Tim Chevalier 70ef1acd1c Fix test for required properties 2024-10-30 17:18:26 -07:00
Tim Chevalier 7fb465496f Feedback from code review 2024-10-30 17:18:26 -07:00
Tim Chevalier d2d84950c3 Update test/built-ins/Temporal/ZonedDateTime/from/argument-propertybag-invalid-offset-string.js
Co-authored-by: Philip Chimento <philip.chimento@gmail.com>
2024-10-30 17:18:26 -07:00
Tim Chevalier a93fe76f52 Temporal: Move ZonedDateTime property bag tests out of staging 2024-10-30 17:18:26 -07:00
Tim Chevalier 87344d96f2 Feedback from code review 2024-10-30 17:03:46 -07:00
Tim Chevalier bfb957f669 Temporal: Move more ZonedDateTime tests out of staging 2024-10-30 17:03:46 -07:00
Tim Chevalier 85934bf49c
Temporal: Move tests for ZonedDateTime/p/{add, subtract} out of staging into test/built-ins (#4287) 2024-10-30 16:20:09 -07:00
Tim Chevalier 01dbd4db41 Temporal: Move tests for ZonedDateTime/compare out of staging into test/built-ins 2024-10-30 15:58:23 -07:00
Philip Chimento 459cef7185 Temporal: Add coverage for validating offset string syntax vs suitability
Syntax is validated first. Only after the property bag is fully converted
into a Calendar Fields Record does the time zone validate whether the UTC
offset is correct for that exact time in the time zone.

See tc39/proposal-temporal#2962
2024-10-07 12:02:45 +02:00
Philip Chimento 6dced5dead Temporal: Add coverage for validating month code syntax vs suitability
Syntax is validated first. Only after the property bag is fully converted
into a Calendar Fields Record does the calendar validate whether the month
code actually exists in the year.

See tc39/proposal-temporal#2962
2024-10-07 12:02:45 +02:00
Philip Chimento 09c7d33253 Temporal: Add coverage for disallowed seconds in offset time zone identifiers
This was an area missing test coverage.
2024-10-07 12:02:45 +02:00
Philip Chimento f4a987fe3c Temporal: Additional tests for cases where date addition goes out of range
See tc39/proposal-temporal#2985
2024-10-03 12:14:41 +02:00
Philip Chimento 326cdb8da8 Temporal: Consistently test all string entry points for representable range
Remove the existing "instant-string-limits.js" that only applied to APIs
where ToTemporalInstant was called. Add "argument-string-limits.js" tests
everywhere ISO strings are converted.

Related to tc39/proposal-temporal#2985
2024-10-03 12:14:41 +02:00
Philip Chimento ea11e0e787 Temporal: Further coverage and tweaks for removing Calendar/TimeZone objs
Tweak some tests to provide coverage of new execution paths in the spec,
such as calling GetOptionsObject inside ToTemporal___; add a few new tests
for things that weren't covered before, such as rounding a PlainDateTime
at the edge of the range; and tweak the tests verifying when the
properties of the options bag are read, which I made a mistake in #4119.

See: https://github.com/tc39/proposal-temporal/pull/2925
2024-08-22 14:00:43 -07:00
Philip Chimento 3a7a72aef5 Temporal: Add tests for conversion of calendar and time zone IDs in constructors
Now that we don't have to deal with strings or objects as input to the
calendar ID or time zone ID parameter of constructors, we accept only the
data that actually goes into the internal slots.
2024-07-05 10:43:53 +02:00
Philip Chimento efc7424844 Temporal: Don't use getISOFields() in other tests
Previously getISOFields() was used to get the exact value of the
[[Calendar]] and [[TimeZone]] internal slots, as well as to get the
reference ISO year for PlainMonthDay and reference ISO day for
PlainYearMonth.

Use calendarId and timeZoneId for the former and toString() for the
latter.
2024-07-05 10:43:53 +02:00
Philip Chimento 7e4de57437 Temporal: Remove tests for getISOFields methods 2024-07-05 10:43:53 +02:00
Philip Chimento e5ef51ba7e Temporal: Move tests into intl402/ that require non-ISO calendar or non-UTC time zone
Without custom calendars and time zones there are actually a bunch of
things that we now can't test on implementations that don't have non-ISO
calendars or non-UTC time zones. (Alternatively, we can say that these are
functionalities that those implementations don't have to implement.)
2024-07-05 10:43:53 +02:00
Philip Chimento 9671c4a613 Temporal: Test adjustments for removing calendar and time zone objects 2024-07-05 10:43:53 +02:00
Philip Chimento 5cd7e9077d Temporal: Remove calendar and time zone observers
These are no longer possible without custom objects. Also add an exception
for calendar and timeZone properties in property bag observers so they are
not treated as objects.
2024-07-05 10:43:53 +02:00
Philip Chimento 27bc974287 Temporal: Replace TemporalHelpers.specificOffsetTimeZone with offset strings 2024-07-05 10:43:53 +02:00
Philip Chimento 0a1cb1307f Temporal: Edit test descriptions that refer to Calendar and TimeZone objects 2024-07-05 10:43:53 +02:00
Philip Chimento 372527e572 Temporal: Don't pass custom calendar in helper tests
This is no longer necessary if there are no calendar objects.
2024-07-05 10:43:53 +02:00
Philip Chimento 9c6734f39b Temporal: Remove Calendar and TimeZone objects from "wrong-type" tests
Test the "wrong type of object" with Duration objects where appropriate,
otherwise just use plain objects.
2024-07-05 10:43:53 +02:00
Philip Chimento debd22a2ad Temporal: Remove tests that throw on calendar or time zone method accesses
Many tests tested some functionality while asserting that there were no
calls of calendar or time zone methods. We can continue testing the
functionality, but there are no more methods to call, so we can delete
those parts of the tests.
2024-07-05 10:43:53 +02:00
Philip Chimento 7d970fbe4e Temporal: Remove fake West Coast and Samoa time zones from TemporalHelpers
It's no longer possible to fake built-in time zones using custom objects.
So testing DST shifts will have to use real built-in time zones. Replace
TemporalHelpers.springForwardFallBackTimeZone with America/Vancouver (it
was modelled on the DST transitions in 2000) and
TemporalHelpers.crossDateLineTimeZone with Pacific/Apia (it was modelled
on the 2011 switch to the other side of the international date line.)

These tests have to move to the intl402/ folder since non-Intl-aware
implementations are allowed (but not required) to support any built-in
time zones other than UTC.
2024-07-05 10:43:53 +02:00
Philip Chimento c728e6d89e Temporal: Fix tests that unnecessarily create TimeZone or Calendar instances
In many cases we created a TimeZone or Calendar instance from a built-in
time zone or calendar. These tests can be trivially adapted to just use
the string ID.
2024-07-05 10:43:53 +02:00
Philip Chimento ea2268aa43 Temporal: Remove tests directly relating to custom calendar and time zones
These are tests that just won't apply anymore without custom calendars and
time zones.
2024-07-05 10:43:53 +02:00
Philip Chimento 6595838b3d Temporal: Remove TimeZone.p.equals method
Some of the tests can be removed altogether since they deal with what
forms of input can be passed to ToTemporalTimeZoneSlotValue. Those are
tested on every method that takes a TimeZone as input.

Other tests are still relevant, but need to move to ZonedDateTime.p.equals
where the various quirks of time zone equality can still be tested. (Some
of these still will be removed in a following commit because they use
time zone objects.)

See: #2826
2024-07-05 10:43:53 +02:00
Philip Chimento 1213ab17ec Temporal: Remove getCalendar and getTimeZone methods
Temporarily replace them with getISOFields().calendar/timeZone just to
keep the tests running until we remove Calendar and TimeZone objects
altogether.

See: tc39/proposal-temporal#2826
2024-07-05 10:43:53 +02:00
Philip Chimento 73f85aeeaf Temporal: Add tests covering options bag argument of getTimeZoneTransition 2024-07-05 10:43:53 +02:00
Philip Chimento c22fbc7b45 Temporal: Port staging tests that use next/previousTransition
See: tc39/proposal-temporal#2826
2024-07-05 10:43:53 +02:00
Philip Chimento 71877cde79 Temporal: Move tests for getNext/PreviousTransition into ZonedDateTime
See: tc39/proposal-temporal#2826
2024-07-05 10:43:53 +02:00
Philip Chimento 3f805a1383 Temporal: Test calendar canonicalization in Temporal
Following the upstream ECMA-402 change tested in the previous commit, add
test coverage for the corresponding functionality in Temporal. Fix one
test that was erroneous.
2024-07-04 11:14:16 +02:00
Philip Chimento 6626b60df6 Temporal: Make U+2212 MINUS SIGN invalid in ISO strings
These are the test adjustments corresponding to the normative PR
https://github.com/tc39/ecma262/pull/3334 which reached consensus at the
June 2024 TC39 meeting.
2024-07-03 08:50:57 -07:00
Philip Chimento 3c28e3a359 Temporal: Remove Plain/ZonedDateTime to PlainYearMonth/MonthDay APIs
See tc39/proposal-temporal#2848
2024-06-13 22:04:16 +02:00
Philip Chimento 1c900ca59c Temporal: Remove epoch seconds and epoch microseconds APIs
See: tc39/proposal-temporal#2849
2024-06-13 22:04:16 +02:00
Philip Chimento a9c223c60e Temporal: Remove withPlainDate() methods
See tc39/proposal-temporal#2847.
2024-06-13 22:04:16 +02:00
Philip Chimento 500cea9384 Temporal: Add test coverage for large roundingIncrement in ZDT math
In ZonedDateTime.p.since/until, it's possible for AddDateTime to hit the
limit if the rounding increment is very high, even if the resulting
rounded duration isn't outside of the limit. Add a test covering this
case.
2024-05-14 09:24:12 +02:00
Philip Chimento 96e31e7e28 Temporal: Tests for round() and since()/until() using the same code path
This should produce all the same results (except for a change to weeks
balancing in round(), which is now more consistent with since()/until())
but leads to different observable user code calls.

See https://github.com/tc39/proposal-temporal/issues/2742
2024-05-14 09:24:12 +02:00
Philip Chimento 6c6c72b063 Temporal: Adjust tests for Duration rounding fix
A MoveRelativeZonedDateTime step was missing, causing incorrect results.
See https://github.com/tc39/proposal-temporal/issues/2742
2024-05-14 09:24:12 +02:00