2016-11-23 9 views
0

В настоящее время я пытаюсь настроить единую тестовую среду для небольшого NodeJS API, над которым я работаю. Этот API написан на ES6 и использует экспресс для обработки запросов.Невозможно объявить параметр с именем «ошибка» при настройке karma webpack express ES6

Тест структура У меня до сих пор использует:

  • Карма
  • Жасмин
  • Карма-WebPack
  • Бабель-погрузчик

Он отлично работает для большинства моих спецификации.

Проблема заключается в том, что, когда я пытаюсь написать спецификацию для маршрутизатора (от Express), я получаю следующее сообщение об ошибке:

SyntaxError: Cannot declare a parameter named 'error' in strict mode 

те файлы, которые я использую:

карму. conf.js

module.exports = function(config) { 
    config.set({ 
     browsers: ['PhantomJS'], 
     files: [{ 
       pattern: './src/**/*.spec.js', 
       watched: false 
      }, 
      'node_modules/babel-polyfill/dist/polyfill.js' 
     ], 
     reporters: ['dots', 'growl'], 
     frameworks: ['jasmine'], 
     preprocessors: { 
      './src/**/*.js': ['webpack'] 
     }, 
     webpack: { 
      target: 'node', 
      module: { 
       loaders: [{ 
        test: /\.js/, 
        exclude: /node_modules/, 
        loader: "babel-loader" 
       }, { 
        test: /\.json$/, 
        loader: "json-loader" 
       }] 
      }, 
      resolve: { 
       extensions: ['', '.js', '.json'] 
      }, 
      watch: true 
     }, 
     webpackServer: { 
      noInfo: true, 
      stats: 'errors-only' 
     } 
    }); 
}; 

authRouter.js

import {Router} from 'express'; 

export class AuthRouter { 
    constructor() { 
    this.router = Router(); 
    this.init(); 
    } 

    init() { 
    this.router.post('/login', this.login); 
    this.router.get('/logout', this.logout); 
    } 

    login(req, res){ 
    //Do stuff 
    } 

    logout(req, res){ 
    // Do stuff 
    } 
} 

const authRoutes = new AuthRouter(); 
authRoutes.init(); 

export default authRoutes.router; 

authRouter.spec.js

import {AuthRouter} from './AuthRouter'; 

describe('AuthRouter',() => { 
    let router; 
    beforeEach(() => { 
    router = new AuthRouter(); 
    }); 

    it('work this test :(',() => { 
    expect(true).toBe(true) 
    }); 
}); 

Может кто-нибудь мне помочь?

Заранее спасибо

ответ

0

На мой взгляд, PhantomJS это виртуальный браузер с помощью JavaScript, а не Node.js.

Таким образом, сервер узла запуска в браузере не является подходящим способом проведения теста.

Возможно, вы можете написать тест API чисто мокко.

Если вам понадобится преобразование Babel для вашего тестового кода, это может быть необходимо.

mocha --compilers js:babel-core/register --recursive