Сброс spyOnEvent в документе

#jasmine #jasmine-jquery

#jasmine #jasmine-jquery

Вопрос:

Я пытаюсь отследить пользовательское событие на основе некоторых данных, для этого я слежу за своим пользовательским событием и ожидаю, что событие сработает или нет. Здесь я пытаюсь сбросить свой spyevent, все, что я получаю, это неопределенная ошибка

TypeError: undefined is not an object (evaluating 'spyOnEvent(document, 'product.trackVariantChanged').calls.reset')

 it('selects a variant without triggering the product.trackVariantChanged event on document', function() {
            spyOnEvent(document, 'variantChanged');
            spyOnEvent(document, 'product.trackVariantChanged').calls.reset();
            App.ColorSelector.init(); // this function automatically calls custom triggers when it calls

            App.ColorSelector.selectVariant($colorSelector, 'wms_III_black'); //this function has a depedency on init()

            expect('variantChanged').toHaveBeenTriggeredOn(document);
        expect('product.trackVariantChanged').not.toHaveBeenTriggeredOn(document);  

            App.ColorSelector.selectVariant($colorSelector, 'wms_III_white');

            expect('variantChanged').toHaveBeenTriggeredOn(document);
        expect('product.trackVariantChanged').not.toHaveBeenTriggeredOn(document);  
        });
  

из приведенного выше случая App.ColorSelector.init(); эта функция автоматически вызывает / должна получить вызов fisr и запускает пользовательское событие, и App.ColorSelector.selectVariant($colorSelector, 'wms_III_black'); эта функция зависит от функции init()
Итак, я хочу сбросить spy перед selectVariant вызовом функции.

Ответ №1:

spyOnEvent Вместо calls.reset() использования spyOnEvent(document, 'customEvent').reset(); он будет работать.