PlainDate.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. describe("errors", () => {
  2. test("called without new", () => {
  3. expect(() => {
  4. Temporal.PlainDate();
  5. }).toThrowWithMessage(
  6. TypeError,
  7. "Temporal.PlainDate constructor must be called with 'new'"
  8. );
  9. });
  10. test("cannot pass Infinity", () => {
  11. expect(() => {
  12. new Temporal.PlainDate(Infinity);
  13. }).toThrowWithMessage(RangeError, "Invalid plain date");
  14. expect(() => {
  15. new Temporal.PlainDate(0, Infinity);
  16. }).toThrowWithMessage(RangeError, "Invalid plain date");
  17. expect(() => {
  18. new Temporal.PlainDate(0, 0, Infinity);
  19. }).toThrowWithMessage(RangeError, "Invalid plain date");
  20. expect(() => {
  21. new Temporal.PlainDate(-Infinity);
  22. }).toThrowWithMessage(RangeError, "Invalid plain date");
  23. expect(() => {
  24. new Temporal.PlainDate(0, -Infinity);
  25. }).toThrowWithMessage(RangeError, "Invalid plain date");
  26. expect(() => {
  27. new Temporal.PlainDate(0, 0, -Infinity);
  28. }).toThrowWithMessage(RangeError, "Invalid plain date");
  29. });
  30. test("cannot pass invalid ISO month/day", () => {
  31. expect(() => {
  32. new Temporal.PlainDate(0, 0, 1);
  33. }).toThrowWithMessage(RangeError, "Invalid plain date");
  34. expect(() => {
  35. new Temporal.PlainDate(0, 1, 0);
  36. }).toThrowWithMessage(RangeError, "Invalid plain date");
  37. });
  38. });
  39. describe("normal behavior", () => {
  40. test("length is 3", () => {
  41. expect(Temporal.PlainDate).toHaveLength(3);
  42. });
  43. test("basic functionality", () => {
  44. const plainDate = new Temporal.PlainDate(2021, 7, 19);
  45. expect(typeof plainDate).toBe("object");
  46. expect(plainDate).toBeInstanceOf(Temporal.PlainDate);
  47. expect(Object.getPrototypeOf(plainDate)).toBe(Temporal.PlainDate.prototype);
  48. });
  49. });