Since I had to look it up more than once, here's a small reminder of the differences between the two concepts.
//f(x) + f(x) == 2 * f(x) for all x const addTwo = (x, y) => x + y;
This is a deterministic or pure function, the same input always returns the same output
//f(x) == f(f(x)) for all x let someExternalState = 'off'; const activate = () => someExternalState = 'on';
This is an idempotent function, calling it once or many times in a row produces the same side effect