2

I would like to mock the initialize() in my test. When using the following code in typescript, it returns "ReferenceError: self is not defined". Any advice to solve this?

import "mocha";
import React from "react";
import * as sinon from "sinon";
import { app } from "@microsoft/teams-js";

const sandbox = sinon.createSandbox();

describe("", () => {
  afterEach(() => {
    sandbox.restore();
  });

  it("", async () => {
     sandbox.stub(app, "initialize").callsFake(() => {
       return Promise.reject(new Error(""));
     });
    //...
  });
});

The error thrown is below:

ReferenceError: self is not defined
    at Object.<anonymous> (C:\Users\...\node_modules\@microsoft\teams-js\dist\webpack:\microsoftTeams\webpack\universalModuleDefinition:10:4)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Module.replacementCompile (C:\Users\yiqingzhao\...\node_modules\append-transform\index.js:60:13)
    at Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at C:\Users\...\node_modules\append-transform\index.js:64:4
    at require.extensions.<computed> (C:\Users\...\node_modules\ts-node\src\index.ts:1300:43)
    at Object.<anonymous> (C:\Users\...\node_modules\append-transform\index.js:64:4)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (C:\Users\...\test\useTeams.test.ts:14:13)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Module.replacementCompile (C:\Users\...\node_modules\append-transform\index.js:60:13)
    at Module.m._compile (C:\Users\...\node_modules\ts-node\src\index.ts:1310:23)
    at module.exports (C:\Users\...\node_modules\default-require-extensions\js.js:7:9)
    at C:\Users\...\node_modules\append-transform\index.js:64:4
    at require.extensions.<computed> (C:\Users\...\node_modules\ts-node\src\index.ts:1313:12)
    at Object.<anonymous> (C:\Users\...\node_modules\append-transform\index.js:64:4)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.exports.requireOrImport (C:\Users\...\node_modules\mocha\lib\nodejs\esm-utils.js:60:20)
    at async Object.exports.loadFilesAsync (C:\Users\...\node_modules\mocha\lib\nodejs\esm-utils.js:103:20)
    at async singleRun (C:\Users\...\node_modules\mocha\lib\cli\run-helpers.js:125:3)
    at async Object.exports.handler (C:\Users\...\node_modules\mocha\lib\cli\run.js:374:5)

0 Answers0