OfficeDev / OfficeDev/Office-Addin-Scripts
Unable to use OfficeMockObject in jsdom test environment
未关闭
@igor-ribeiiro 已经在做这个了。
开始于 2022年6月21日。
triaged
- 主要语言
- TypeScript
- 星标
- 194
- 派生
- 117
- 平均合并
- 1 天 32 分钟
- 30 天内合并 PR
- 2
描述
Prerequisites
- I am running the latest version of Node and the tools
- I checked the documentation and found no answer
- I checked to make sure that this issue has not already been filed
Expected behavior
The jest test runner runs the tests with jsdom environment without error while making use of "office-addin-mock".
Current behavior
The test fails to run because "office-addin-mock" seems to expect a Node environment (see Failure Logs below).
Steps to Reproduce
Run the following test file:
/**
* @jest-environment jsdom
*/
import React from "react";
import { render, screen } from "@testing-library/react";
import "@testing-library/jest-dom";
import { OfficeMockObject } from "office-addin-mock";
import App from "./App";
/* global global, it, expect */
const officeMock = new OfficeMockObject({});
// @ts-ignore
global.Office = officeMock;
it("should render message while fetching contact(s)", () => {
render(<App title={"Some Title"} isOfficeInitialized={true} />);
expect(screen.getByRole("header")).toHaveTextContent("Whatever");
});
Context
Packages installed in addition to the office-addin-react starter:
- "@testing-library/jest-dom": "^5.16.4",
- "@testing-library/react": "^12.1.5",
- "@types/jest": "^28.1.1",
- "jest": "^28.1.1",
- "jest-environment-jsdom": "^28.1.1",
- "office-addin-mock": "^2.1.2",
- "ts-jest": "^28.0.5",
- Operating System: Windows
- Node version: v16.15.0
jest.config.js:
const config = {
preset: "ts-jest",
testEnvironment: "node",
};
module.exports = config;
Test script: jest
Failure Logs
● Test suite failed to run
The error below may be caused by using the wrong test environment, see https://jestjs.io/docs/configuration#testenvironment-string.
Consider using the "node" test environment.
TypeError: this._handle.unref is not a function
6 | import { render, screen } from "@testing-library/react";
7 | import "@testing-library/jest-dom";
> 8 | import { OfficeMockObject } from "office-addin-mock";
| ^
9 | import App from "./App";
10 |
11 | /* global global, it, expect */
at new OfficeAddinUsageData (node_modules/office-addin-usage-data/src/usageData.ts:126:13)
at Object.<anonymous> (node_modules/office-addin-manifest/src/defaults.ts:7:64)
at Object.<anonymous> (node_modules/office-addin-manifest/src/manifestOperations.ts:4:1)
at Object.<anonymous> (node_modules/office-addin-manifest/src/main.ts:7:1)
at Object.<anonymous> (node_modules/office-addin-mock/src/officeMockObject.ts:1:1)
at Object.<anonymous> (node_modules/office-addin-mock/src/main.ts:4:1)
at Object.<anonymous> (src/taskpane/components/minimal.test.tsx:8:1)
at TestScheduler.scheduleTests (node_modules/@jest/core/build/TestScheduler.js:317:13)
at runJest (node_modules/@jest/core/build/runJest.js:407:19)
at _run10000 (node_modules/@jest/core/build/cli/index.js:339:7)
at runCLI (node_modules/@jest/core/build/cli/index.js:190:3)
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
评估
这个 Issue 还没有评估数据。