Angular.js: Les mocks angulaires ne se moquent plus des cookies du navigateur

Créé le 27 août 2015  ·  3Commentaires  ·  Source: angular/angular.js

Nous avons récemment migré vers angulaire 1.4, et nous avons remarqué que certains tests échouent par intermittence en raison de l'état qui reste entre les tests dans les cookies. Il semble que la moquerie des cookies ait été supprimée des angular-mocks dans les dernières versions. J'ai quelques plunks pour illustrer le point.

Ici, dans angular 1.3, le cookie est défini dans $cookieStore dans un test, et il n'est pas défini dans $cookieStore dans les tests suivants :
http://plnkr.co/edit/WbRKACxBvJkHUmJwntN4?p=preview

Dans angular 1.4, cependant, le cookie est toujours défini sur les tests suivants, ce qui le fait échouer :
http://plnkr.co/edit/c6jpOmmSuufSYvQysdTQ?p=preview

Cette fonctionnalité a-t-elle été intentionnellement supprimée, et si oui, pouvez-vous me dire quelle est la solution de contournement envisagée ?

ngCookies investigation

Commentaire le plus utile

L'équipe Angular pense-t-elle que personne n'a besoin de tester la configuration et l'obtention de cookies avec ngCookies ? Je suis choqué de découvrir qu'un an après la sortie de la 1.4, cela n'a toujours pas été réglé.

Tous les 3 commentaires

@shahata savez-vous par hasard pourquoi il y a une différence?

@Narretz Dans les versions précédentes d'Angular, $browser.cookies() était complètement simulé par ngMock et l'écriture d'un cookie via $cookies écrivait sur une carte en mémoire et non sur le navigateur. Nous en avons discuté dans le passé et avons envisagé d'ajouter un kit de test qui se connecte au nouveau mécanisme de cookies et donne des outils qui vérifient que les cookies sont écrits avec des paramètres corrects (il ne s'agit plus seulement de la valeur du cookie), mais je ne pense pas c'est très critique.

@butchpeters Je pense que la meilleure façon de procéder est que vous vous moquiez de $cookies dans votre test :

module({$cookies: {
  store:{},
  put: function (key, value) { this.store[key] = value; },
  get: function (key) { return this.store[key]; }
}});

Voici le plunker fixe : http://plnkr.co/edit/LTQHDtDM5FOiTiXl2waT?p=preview

L'équipe Angular pense-t-elle que personne n'a besoin de tester la configuration et l'obtention de cookies avec ngCookies ? Je suis choqué de découvrir qu'un an après la sortie de la 1.4, cela n'a toujours pas été réglé.

Cette page vous a été utile?
0 / 5 - 0 notes