关于js柯里化做笔试题时遇到一个问题
请实现test2函数满足以下四个条件使其通过测试，以最简洁的方式完成，并保证代码质量
module.exports.test2 = (input) => {
}
(1)test2() === 0
(2)test2(1)() === 1
(3)test2(1)(2)(3)(4)() === 10
(4)const t2 = test2(1)(2); t2(3)() === 6; t2(4)() === 7
我写了一个函数，但是只能满足前三个条件，求大神赐教，怎么同时满足这四个条件，不知道咋写。
题目已经给出了函数的签名，那么答案是不应该擅自改动的。
```
module.exports.test2 = (input) => {
  const fn = a => b => b == null ? a : fn(a + b)
  return input == null ? 0 : fn(input)
}
```