Тест Jest не проходит - ReferenceError: Office не определен - PullRequest
0 голосов
/ 30 апреля 2020

Я использую пользовательский интерфейс React-fabri c с Office. js для создания надстроек Excel. Используется ниже CDN для импорта офиса. js в индексе. html файл.

<script
            src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"
            type="text/javascript"
        ></script>

Ниже приведен мой jest.config. json

{
"testEnvironment": "node",
"verbose": true,
"files": ["https://appsforoffice.microsoft.com/lib/1/hosted/office.js"],
"setupFilesAfterEnv": ["<rootDir>/setupTests.js"],
"moduleFileExtensions": ["js", "jsx", "json"],
"transform": {
    "^.+\\.(t|j)s$": "babel-jest"
},
"moduleDirectories": ["node_modules", "<rootDir>/app/src"],
"testPathIgnorePatterns": [
    "Office",
    "node_modules",
    "<rootDir>/app/src/styles",
    "<rootDir>/app/images"
],
"moduleNameMapper": {
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/app/__mocks__/fileMock.js",
    "\\.(css|sass|scss)$": "<rootDir>/app/__mocks__/styleMock.js",
    "office-ui-fabric-react/lib/(.*)$": "office-ui-fabric-react/lib-commonjs/$1",
    "alias": {
        "^components(.*)$": "<rootDir>/app/src/components/$1",
        "^utils/(.*)$": "<rootDir>/app/src/utils/$1",
        "^styles/(.*)$": "<rootDir>/app/src/styles/$1",
        "^@[/](.+)": "<rootDir>/app/src"
    }
},
"testMatch": ["**/__tests__/**/*.js?(x)"]

}

Мои тестовые случаи не выполняются со следующей ошибкой:

ReferenceError: Office не определен

Пожалуйста, помогите решить эту проблему, так как пытались несколько вещей, чтобы решить эту проблему но не повезло.

1 Ответ

1 голос
/ 30 апреля 2020

это работает путем добавления файла настройки фермента и добавления ключа Office к глобальному объекту и функции стрелки в качестве значения. Как ниже: setupTest. js

import React from 'react';
import Adapter from 'enzyme-adapter-react-16';
import { configure, shallow, render, mount } from 'enzyme';

configure({ adapter: new Adapter() });

global.React = React;
global.shallow = shallow;
global.render = render;
global.mount = mount;
global.Office = () => ({});
global.Office.onReady = () => ({});
...