object-getter-setter-shorthand.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. test("normal methods named get and set", () => {
  2. let o = {
  3. get() {
  4. return 5;
  5. },
  6. set() {
  7. return 10;
  8. },
  9. };
  10. expect(o.get()).toBe(5);
  11. expect(o.set()).toBe(10);
  12. });
  13. test("basic get and set", () => {
  14. let o = {
  15. get x() {
  16. return 5;
  17. },
  18. set x(_) {},
  19. };
  20. expect(o.x).toBe(5);
  21. o.x = 10;
  22. expect(o.x).toBe(5);
  23. });
  24. test("get and set with 'this'", () => {
  25. let o = {
  26. get x() {
  27. return this._x + 1;
  28. },
  29. set x(value) {
  30. this._x = value + 1;
  31. },
  32. };
  33. expect(o.x).toBeNaN();
  34. o.x = 10;
  35. expect(o.x).toBe(12);
  36. o.x = 20;
  37. expect(o.x).toBe(22);
  38. });
  39. test("multiple getters", () => {
  40. let o = {
  41. get x() {
  42. return 5;
  43. },
  44. get x() {
  45. return 10;
  46. },
  47. };
  48. expect(o.x).toBe(10);
  49. });
  50. test("setter return value", () => {
  51. o = {
  52. set x(value) {
  53. return 10;
  54. },
  55. };
  56. expect((o.x = 20)).toBe(20);
  57. });