| // Copyright (C) 2022 Igalia, S.L. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| esid: sec-temporal.plaindate.prototype.since |
| description: Basic tests with custom calendar |
| includes: [temporalHelpers.js] |
| features: [Temporal] |
| ---*/ |
| |
| const result = new Temporal.Duration(1, 3, 5, 7, 9); |
| const options = {}; |
| let calls = 0; |
| class CustomCalendar extends Temporal.Calendar { |
| constructor() { |
| super("iso8601"); |
| } |
| dateUntil(...args) { |
| ++calls; |
| assert.sameValue(args.length, 3, "Three arguments"); |
| assert.sameValue(args[0], plainDate, "First argument"); |
| assert.sameValue(args[1], other, "Second argument"); |
| assert.sameValue(args[2].largestUnit, "day", "Third argument: largestUnit"); |
| return result; |
| } |
| } |
| const calendar = new CustomCalendar(); |
| const plainDate = new Temporal.PlainDate(1976, 11, 18, calendar); |
| const other = new Temporal.PlainDate(2022, 6, 20, calendar); |
| TemporalHelpers.assertDuration(plainDate.since(other, options), |
| -1, -3, -5, -7, 0, 0, 0, 0, 0, 0, "result"); |
| assert.sameValue(calls, 1); |