OfficeDev / OfficeDev/Office-Addin-Scripts

Unable to use OfficeMockObject in jsdom test environment

オープン
#653 コメント 9 件 リアクション 0 件 担当者 1 名 GitHub で見る

@igor-ribeiiro がすでに取り組んでいます。

2022年6月21日 から。

triaged
主要言語
TypeScript
スター
194
フォーク
117
平均マージ
1日 32分
マージ済み PR(30日)
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)

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。