diff --git a/src/datetime.js b/src/datetime.js index 85e249fb8..3080fc7fc 100644 --- a/src/datetime.js +++ b/src/datetime.js @@ -1679,7 +1679,10 @@ export default class DateTime { */ diff(otherDateTime, unit = "milliseconds", opts = {}) { if (!this.isValid || !otherDateTime.isValid) { - return Duration.invalid(this.invalid || otherDateTime.invalid); + return Duration.invalid( + this.invalid || otherDateTime.invalid, + "created by diffing an invalid DateTime" + ); } const durOpts = Object.assign( diff --git a/test/datetime/relative.test.js b/test/datetime/relative.test.js index 3a9196231..61c34003b 100644 --- a/test/datetime/relative.test.js +++ b/test/datetime/relative.test.js @@ -43,14 +43,14 @@ test("DateTime#toRelative takes a round argument", () => { }); test("DateTime#toRelative takes a unit argument", () => { - const base = DateTime.fromObject({ year: 1983, month: 10, day: 14 }); + const base = DateTime.fromObject({ year: 2018, month: 10, day: 14, zone: "UTC" }); expect(base.plus({ months: 15 }).toRelative({ base, unit: "months" })).toBe("in 15 months"); expect(base.minus({ months: 15 }).toRelative({ base, unit: "months" })).toBe("15 months ago"); - expect(base.plus({ months: 6 }).toRelative({ base, unit: "years", round: false })).toBe( - "in 0.5 years" + expect(base.plus({ months: 3 }).toRelative({ base, unit: "years", round: false })).toBe( + "in 0.25 years" ); - expect(base.minus({ months: 6 }).toRelative({ base, unit: "years", round: false })).toBe( - "0.5 years ago" + expect(base.minus({ months: 3 }).toRelative({ base, unit: "years", round: false })).toBe( + "0.25 years ago" ); });