2017-06-16 1 views
0

Mes tests javascript utilisant passent lorsque j'utilise le Karma Chrome Launcher, mais ils échouent lorsque j'utilise le navigateur PhantomJS. Cette base de code utilise également ES6 et babel, mais je ne pense pas que ce soit le problème car tout mon code ES6 dans les autres modules ne se casse pas. J'ai le plus de mal à comprendre la trace de pile que je reçois pour mes 3 tests défaillants. L'erreur note SyntaxError: Unexpected token ',' (line 2) [email protected][native code]. Je ne sais pas quoi faire avec cela ou comment déboguer avec un point d'arrêt puisqu'il s'agit de code natif. Ce que j'ai essayé est ci-dessous.Le test Karma jasmine échoue lors de l'exécution sur PhantomJS

PhantomJS 2.1.1 (Mac OS X 0.0.0) paymentForm completes payment, displays thank you FAILED 
    SyntaxError: Unexpected token ',' (line 2) 
    [email protected][native code] 
    [email protected]_components/angular/angular.js:14539:27 
    [email protected]_components/angular/angular.js:15422:36 
    [email protected]_components/angular/angular.js:15587:44 
    [email protected]_components/angular/angular.js:16800:25 
    [email protected]_components/angular/angular.js:24221:21 
    bower_components/angular/angular.js:1266:23 
    [email protected]_components/angular/angular.js:9757:15 
    [email protected]_components/angular/angular.js:9156:23 
    [email protected]_components/angular/angular.js:8459:23 
    [email protected]_components/angular/angular.js:9151:35 
    bower_components/angular/angular.js:9496:36 
    [email protected]_components/angular/angular.js:16104:30 
    bower_components/angular/angular.js:16120:39 
    [email protected]_components/angular/angular.js:17378:28 
    [email protected]_components/angular/angular.js:17191:36 
    [email protected]_components/angular-mocks/angular-mocks.js:1791:45 
    src/app/payment/payment.directive.spec.js:163:25 

Ce que j'essayé:

  • changé entre v4.2.6 et 6.10.2 et réinstallé les paquets ci-dessous
  • mis à jour les forfaits NPM:
    • karma 0.12.31 -> 1.3.0,
    • karma-phantomjs-lanceur 1.0.0 -> 1.04 (plus récent) pas de succès.

Répondre

0

Ce qui brisait mon code était une clé en double dans mon modèle angulaire. Sensationnel. Ahh les joies d'être un développeur web. Bizarrement mon ancien code ne s'est pas cassé dans Chrome, Firefox ou Safari.

<div 
    class="slds-spinner" 
    ng-class="{ 
    'slds-spinner--small': size === 'small', 
    'slds-spinner--small': size === 'medium' || !size, 
    'slds-spinner--large': size === 'large', 
    'slds-spinner--inverse': inverse === 'true' 
    }" 
    aria-hidden="false" 
    role="alert"> 

    <div class="slds-spinner__dot-a"></div> 
    <div class="slds-spinner__dot-b"></div> 
</div> 

Quand je l'ai changé à ceci:

<!-- No more dupe keys --> 
<div 
    class="slds-spinner" 
    ng-class="{ 
    'slds-spinner--small': size === 'small' || !size, 
    'slds-spinner--medium': size === 'medium', 
    'slds-spinner--large': size === 'large', 
    'slds-spinner--inverse': inverse === 'true' 
    }" 
    aria-hidden="false" 
    role="alert"> 

    <div class="slds-spinner__dot-a"></div> 
    <div class="slds-spinner__dot-b"></div> 
</div>