Looking into the code, I found that ensure* methods only verify if the destination path exist and not if the path is of the right * type. IMHO an error should be thrown if path is of the wrong type. Perhaps fs.stat instead of fs.access should suffice...