簡體   English   中英

如何使用Scheduler Extension為Probot正確配置單元測試?

[英]How to correctly configure unit tests for Probot with Scheduler Extension?

我正在使用以下最小的Probot應用,並嘗試為其編寫Mocha單元測試。

不幸的是,這會導致以下錯誤,這表明我的一些私鑰或安全令牌設置沒有被使用。

我認為.env文件的配置正確,因為通過probot-run.js啟動probot時沒有出現相同的錯誤。

與Mocha一起使用時,配置probot是否需要其他步驟? 關於為什么使用調度程序擴展可能會導致此類問題的任何建議都很好。

下面的代碼和錯誤:

應用程序

import createScheduler from "probot-scheduler";
import { Application } from "probot";

export = (app: Application) => {

  createScheduler(app, {
    delay: !!process.env.DISABLE_DELAY, // delay is enabled on first run
    interval: 24 * 60 * 60 * 1000 // 1 day
  });

  app.on("schedule.repository", async function (context) {
    app.log.info("schedule.repository");
    const result = await context.github.pullRequests.list({owner: "owner", repo: "test"});
    app.log.info(result);
  });
};

測試

import createApp from "../src/app";

import nock from "nock";
import { Probot } from "probot";

nock.disableNetConnect();

describe("my scenario", function() {
  let probot: Probot;
  beforeEach(function() {
    probot = new Probot({});
    const app = probot.load(createApp);
  });

  it("basic feature", async function() {
    await probot.receive({name: "schedule.repository", payload: {action: "foo"}});
  });
});

不幸的是,這導致以下錯誤:

 Error: secretOrPrivateKey must have a value
  at Object.module.exports [as sign] (node_modules/jsonwebtoken/sign.js:101:20)
  at Application.app (node_modules/probot/lib/github-app.js:15:39)
  at Application.<anonymous> (node_modules/probot/lib/application.js:260:72)
  at step (node_modules/probot/lib/application.js:40:23)
  at Object.next (node_modules/probot/lib/application.js:21:53)

原來是new Probot({}); 如文檔中所建議的那樣,不帶任何參數即可初始化Probot對象(給定的options對象{}畢竟為空)。

為避免該錯誤,可以手動提供信息:

new Probot({
  cert: "...",
  secret: "...",
  id: 12345
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM