Protractor expire en attente de synchronisation avec la page lors de l'utilisation de $ resource

Je suis en essais Rapporteur, avec une petite application AngularJS.

C'est le test:

describe('Testing Protractor', function() {
  var draftList;

  it('should count the number of drafts', function() {
    browser.get('#/');
    draftList = element.all(by.repeater('newsletter in drafts'));
    expect(draftList.count()).toEqual(2);
  });
});

Contrôleur:

angular.module('myApp.controllers', []).
  controller('DraftsCtrl', ['$scope', 'Draft', function($scope, Draft) {
    $scope.drafts = Draft.query();
}])

Projet de service:

angular.module('myApp.services', ['ngResource']).
  factory('Draft', ['$resource',
    function($resource) {
      return $resource('api/drafts/:id')
    }])

L'exécution de ce test à l'aide du Rapporteur résultats dans l'erreur suivante:

Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds

Cependant, si dans le contrôleur-je changer cette ligne:

$scope.drafts = Draft.query();

:

$scope.drafts = [];

Le test échoue comme prévu, mais plus important encore: il n'a pas le temps.

Avec query() est activée, à la fois lors de l'exécution de l'application manuellement dans un navigateur et lorsque l'on regarde la fenêtre du navigateur ouverte par le Rapporteur, les données renvoyées par l'API est correctement affiché par un répéteur.

Pourquoi le Rapporteur, de ne pas pouvoir synchroniser avec la page lorsque le service est en communication avec l'API?

AngularJS est v1.2.0-rc3. Le rapporteur est v0.12.0.

source d'informationauteur Joseph S. | 2013-11-02