diff options
Diffstat (limited to 'js/form_data_test.ts')
-rw-r--r-- | js/form_data_test.ts | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/js/form_data_test.ts b/js/form_data_test.ts index f3fbdd872..109220f63 100644 --- a/js/form_data_test.ts +++ b/js/form_data_test.ts @@ -96,3 +96,73 @@ test(function formDataParamsForEachSuccess() { }); assertEqual(callNum, init.length); }); + +test(function formDataParamsArgumentsCheck() { + const methodRequireOneParam = ["delete", "getAll", "get", "has", "forEach"]; + + const methodRequireTwoParams = ["append", "set"]; + + methodRequireOneParam.forEach(method => { + const formData = new FormData(); + let hasThrown = 0; + let errMsg = ""; + try { + formData[method](); + hasThrown = 1; + } catch (err) { + errMsg = err.message; + if (err instanceof TypeError) { + hasThrown = 2; + } else { + hasThrown = 3; + } + } + assertEqual(hasThrown, 2); + assertEqual( + errMsg, + `FormData.${method} requires at least 1 argument, but only 0 present` + ); + }); + + methodRequireTwoParams.forEach(method => { + const formData = new FormData(); + let hasThrown = 0; + let errMsg = ""; + + try { + formData[method](); + hasThrown = 1; + } catch (err) { + errMsg = err.message; + if (err instanceof TypeError) { + hasThrown = 2; + } else { + hasThrown = 3; + } + } + assertEqual(hasThrown, 2); + assertEqual( + errMsg, + `FormData.${method} requires at least 2 arguments, but only 0 present` + ); + + hasThrown = 0; + errMsg = ""; + try { + formData[method]("foo"); + hasThrown = 1; + } catch (err) { + errMsg = err.message; + if (err instanceof TypeError) { + hasThrown = 2; + } else { + hasThrown = 3; + } + } + assertEqual(hasThrown, 2); + assertEqual( + errMsg, + `FormData.${method} requires at least 2 arguments, but only 1 present` + ); + }); +}); |