Неожиданный токен, ожидаемый ";" при импорте JSON в NodeJS шутливое тестирование - PullRequest
0 голосов
/ 02 мая 2020

У меня есть NodeJS проект с использованием Jest и babel. Когда я запускаю тест, я получаю следующую ошибку:

FAIL ./user.test.js ● Test suite failed to run. SyntaxError: C:\Users\...\__test__\mocks\registerUser.json: Unexpected token, expected ";" (2:8) Когда я изменяю registerUser. json на файл javascript, я могу получить содержимое без проблем, но когда я попытаться использовать файл JSON не будет работать. Но я не могу найти причину ошибки при использовании файла json.

Моя текущая структура выглядит примерно так:

|-- src
|-- __test__
     |-- mocks
        |-- registerUser.json
     |-- user.test.js
|-- tmp
.babelrc
.eslintignore
.eslintrc
.gitignore
.prettierrc
jest.config.js
package.json

user.test. js

const userRegisterMock = require('./mocks/registerUser.json');

describe('User', () => {
  it('[SUCCESS] should be able to register', async () => {
    // console.log(userRegisterMock)
    expect(true).toBe(true);
  });
});

jest.config . js

    module.exports = {
      bail: 1,
      testEnvironment: 'node',
      clearMocks: true,
      collectCoverage: true,
      collectCoverageFrom: [
        'src/**',
        '!src/helpers/**',
        '!src/app.js',
        '!src/server.js',
        '!src/database/**',
        '!src/config/**'
      ],
      coverageDirectory: '__tests__/coverage',
      coverageReporters: ['text', 'lcov'],
      coverageThreshold: {
        global: {
          branches: 100,
          functions: 100,
          lines: 100,
          statements: 100
        }
      },
      moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx', 'node'],
      resetModules: false,
      testMatch: ['**/__tests__/**/*.test.js'],
      transform: {
        '.(js|jsx|ts|tsx)': 'babel-jest'
      }
    };

.babelr c

{
  "presets": [
    ["@babel/preset-env", {
      "useBuiltIns": "usage", // or "entry"
      "corejs": 3,
      "targets": {
        "node": "current"
      }
    }]
  ],
  "plugins": [
    ["@babel/plugin-transform-modules-commonjs"],
    ["@babel/plugin-transform-runtime", {
      "regenerator": true
    }]
  ]
}

registerUser. json

{
  "name": "Test Case",
  "country": "Brazil",
  "birthdate": "25/03/1994",
  "sex": "Masculino",
  "nationality": "Brasileiro"
}

1 Ответ

0 голосов
/ 02 мая 2020

Я думаю, для начала вам нужно добавить точку с запятой в верхнюю строку user.test. js. Это должно выглядеть так:

const userRegisterMock = require('./mocks/registerUser.json');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...