Domanda

Ho un'app angolare (in esecuzione da un progetto MVC ASP.NET.)

In questa app, ho una direttiva con la seguente funzione di collegamento:

    link: function (scope, element, attrs, formCtrl) {
        element.bind('click', function (event) {
            formCtrl.$setPristine();
        });

    }
.

Ho scritto questo test:

var $compile,
        $rootScope,
        form;

    beforeEach(module('points'));

    beforeEach(inject(function(_$compile_, _$rootScope_, testHelper){
        $compile = _$compile_;
        $rootScope = _$rootScope_;
        testHelper.expectBaseRoute();
    }));

    it('Should set form to pristine when clicked', function () {
        var scope = $rootScope;

        form = $compile('<form name="testForm" unsaved-warning-clear><input name="test" ng-model="value"/></form>')(scope);
        scope.value = "abc";
        scope.$digest();

        scope.testForm.test.$setViewValue('def');

        expect(scope.testForm.$pristine).toBe(false);

        $(form).trigger('click');

        expect(scope.testForm.$pristine).toBe(true);
    });
.

Se l'ho eseguito nel browser utilizzando il gelsomino, il test passa.

Se lo eseguo con chutzpah all'interno dell'IDE, fallisce.Non spara mai l'evento click.

C'è qualcosa che mi manca?

È stato utile?

Soluzione

Per il mio caso, è stato un incidente di stupido errore utente.

Il mio file runner di test del gelsomino viene eseguito dal browser ha avuto jQuery, quindi referenziato angolare.

Il mio file chutzpah.json ha avuto l'ordine inverso.

Ho spostato il reference jQuery e ha iniziato a lavorare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top