Неправильный код: if(cache.indexOf(query)) { fast_path }
Правильный код: if(cache.indexOf(query) != -1) { fast_path }
Ну и в итоге первый элемент кэша никогда не используется.
Вопрос: как это юнит-тестить? Работает-то оно одинаково, только с разной скоростью.