1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- describe("correct behavior", () => {
- test("basic functionality", () => {
- let n = 0;
- expect(++n).toBe(1);
- expect(n).toBe(1);
- n = 0;
- expect(n++).toBe(0);
- expect(n).toBe(1);
- n = 0;
- expect(--n).toBe(-1);
- expect(n).toBe(-1);
- n = 0;
- expect(n--).toBe(0);
- expect(n).toBe(-1);
- let a = [];
- expect(a++).toBe(0);
- expect(a).toBe(1);
- let b = true;
- expect(b--).toBe(1);
- expect(b).toBe(0);
- });
- test("updates that produce NaN", () => {
- let s = "foo";
- expect(++s).toBeNaN();
- expect(s).toBeNaN();
- s = "foo";
- expect(s++).toBeNaN();
- expect(s).toBeNaN();
- s = "foo";
- expect(--s).toBeNaN();
- expect(s).toBeNaN();
- s = "foo";
- expect(s--).toBeNaN();
- expect(s).toBeNaN();
- });
- });
- describe("errors", () => {
- test("update expression throws reference error", () => {
- expect(() => {
- ++x;
- }).toThrowWithMessage(ReferenceError, "'x' is not defined");
- });
- });
|