0

現在、取り組んでいる小さな NodeJS API の単体テスト環境をセットアップしようとしています。この API は ES6 で記述されており、express を使用してリクエストを処理しています。

これまでに使用したテスト構造は次のとおりです。

  • カルマ
  • ジャスミン
  • Karma-webpack
  • バベルローダー

私の仕様のほとんどで問題なく動作します。

問題は、Router の仕様を (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)
  });
});

誰かが私を助けることができますか?

前もって感謝します

4

1 に答える 1