test262/test/built-ins/Temporal/Now/plainDateTime/timezone-getoffsetnanosecondsfor-not-a-number.js
Rick Waldron bb93efdb6b
Automated assertion message update (#3136)
This also required manually fixing the "actual" and "expected" order of many assert.sameValue(...) calls.
2021-08-10 10:40:04 -07:00

38 lines
931 B
JavaScript

// Copyright (C) 2020 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.now.plaindatetime
description: Rejects non-numeric nanosecond values reported by TimeZone-like object
features: [BigInt, Symbol, Temporal, arrow-function]
---*/
const invalidValues = [
undefined,
null,
true,
'2020-01-01T12:45:36',
Symbol(),
2n,
{},
Temporal.PlainDateTime,
Temporal.PlainDateTime.prototype
];
for (const dateTime of invalidValues) {
let callCount = 0;
const timeZone = {
getOffsetNanosecondsFor(instant, calendar) {
callCount += 1;
return dateTime;
}
};
assert.throws(
TypeError,
() => Temporal.Now.plainDateTime('iso8601', timeZone),
'Temporal.Now.plainDateTime("iso8601", timeZone) throws a TypeError exception'
);
assert.sameValue(callCount, 1, 'The value of callCount is expected to be 1');
}