123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- test("try/catch without exception", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- try {
- tryHasBeenExecuted = true;
- } catch (e) {
- catchHasBeenExecuted = true;
- }
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeFalse();
- });
- test("try/catch with exception in try", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var tryError = Error("Error in try");
- try {
- tryHasBeenExecuted = true;
- throw tryError;
- expect().fail();
- } catch (e) {
- catchHasBeenExecuted = true;
- expect(e).toBe(tryError);
- }
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeTrue();
- });
- test("try/catch with exception in try and catch", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var tryError = Error("Error in try");
- var catchError = Error("Error in catch");
- expect(() => {
- try {
- tryHasBeenExecuted = true;
- throw tryError;
- expect().fail();
- } catch (e) {
- catchHasBeenExecuted = true;
- expect(e).toBe(tryError);
- throw catchError;
- expect().fail();
- }
- }).toThrow(Error, "Error in catch");
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeTrue();
- });
- test("try/catch/finally without exception", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var finallyHasBeenExecuted = false;
- try {
- tryHasBeenExecuted = true;
- } catch (e) {
- catchHasBeenExecuted = true;
- } finally {
- finallyHasBeenExecuted = true;
- }
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeFalse();
- expect(finallyHasBeenExecuted).toBeTrue();
- });
- test("try/catch/finally with exception in try and catch", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var finallyHasBeenExecuted = false;
- var tryError = Error("Error in try");
- var catchError = Error("Error in catch");
- expect(() => {
- try {
- tryHasBeenExecuted = true;
- throw tryError;
- expect().fail();
- } catch (e) {
- catchHasBeenExecuted = true;
- expect(e).toBe(tryError);
- throw catchError;
- expect().fail();
- } finally {
- finallyHasBeenExecuted = true;
- }
- }).toThrow(Error, "Error in catch");
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeTrue();
- expect(finallyHasBeenExecuted).toBeTrue();
- });
- test("try/catch/finally with exception in finally", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var finallyHasBeenExecuted = false;
- var finallyError = Error("Error in finally");
- expect(() => {
- try {
- tryHasBeenExecuted = true;
- } catch (e) {
- catchHasBeenExecuted = true;
- } finally {
- finallyHasBeenExecuted = true;
- throw finallyError;
- expect().fail();
- }
- }).toThrow(Error, "Error in finally");
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeFalse();
- expect(finallyHasBeenExecuted).toBeTrue();
- });
- test("try/catch/finally with exception in try and finally", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var finallyHasBeenExecuted = false;
- var tryError = Error("Error in try");
- var finallyError = Error("Error in finally");
- expect(() => {
- try {
- tryHasBeenExecuted = true;
- throw tryError;
- expect().fail();
- } catch (e) {
- catchHasBeenExecuted = true;
- expect(e).toBe(tryError);
- } finally {
- finallyHasBeenExecuted = true;
- throw finallyError;
- expect().fail();
- }
- }).toThrow(Error, "Error in finally");
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeTrue();
- expect(finallyHasBeenExecuted).toBeTrue();
- });
- test("try/catch/finally with exception in try, catch and finally", () => {
- var tryHasBeenExecuted = false;
- var catchHasBeenExecuted = false;
- var finallyHasBeenExecuted = false;
- var tryError = Error("Error in try");
- var catchError = Error("Error in catch");
- var finallyError = Error("Error in finally");
- expect(() => {
- try {
- tryHasBeenExecuted = true;
- throw tryError;
- expect().fail();
- } catch (e) {
- catchHasBeenExecuted = true;
- expect(e).toBe(tryError);
- throw catchError;
- expect().fail();
- } finally {
- finallyHasBeenExecuted = true;
- throw finallyError;
- expect().fail();
- }
- }).toThrow(Error, "Error in finally");
- expect(tryHasBeenExecuted).toBeTrue();
- expect(catchHasBeenExecuted).toBeTrue();
- expect(finallyHasBeenExecuted).toBeTrue();
- });
- test("try statement must have either 'catch' or 'finally' clause", () => {
- expect("try {} catch {}").toEval();
- expect("try {} catch (e) {}").toEval();
- expect("try {} finally {}").toEval();
- expect("try {} catch {} finally {}").toEval();
- expect("try {} catch (e) {} finally {}").toEval();
- expect("try {}").not.toEval();
- });
|