我正在使用以下最小probot应用程序,并尝试为其编写Mocha单元测试。
不幸的是,它导致了下面的错误,这表明我对私钥或安全令牌的一些设置没有被选中。
我假设我的.env
文件的配置是正确的,因为当我通过probot-run.js
启动probot时没有得到相同的错误。
当与Mocha一起使用时,是否需要任何额外的步骤来配置probot?任何关于为什么使用调度器扩展可能导致这样的问题的建议都将是非常好的。
以下代码和错误:
app.ts
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);
});
};
测试.ts
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({});
在没有任何参数的情况下初始化Probet对象(给定的选项对象{}
毕竟是空的(。
为了避免错误,可以手动提供信息:
new Probot({
cert: "...",
secret: "...",
id: 12345
});