优化
This commit is contained in:
74
apps/github-app/test/index.test.ts
Normal file
74
apps/github-app/test/index.test.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
// You can import your modules
|
||||
// import index from '../src/index'
|
||||
|
||||
import nock from 'nock';
|
||||
// Requiring our app implementation
|
||||
import myProbotApp from '../src';
|
||||
import { Probot, ProbotOctokit } from 'probot';
|
||||
// Requiring our fixtures
|
||||
import payload from './fixtures/issues.opened.json';
|
||||
const issueCreatedBody = { body: 'Thanks for opening this issue!' };
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const privateKey = fs.readFileSync(
|
||||
path.join(__dirname, 'fixtures/mock-cert.pem'),
|
||||
'utf-8'
|
||||
);
|
||||
|
||||
describe('My Probot app', () => {
|
||||
let probot: any;
|
||||
|
||||
beforeEach(() => {
|
||||
nock.disableNetConnect();
|
||||
probot = new Probot({
|
||||
appId: 123,
|
||||
privateKey,
|
||||
// disable request throttling and retries for testing
|
||||
Octokit: ProbotOctokit.defaults({
|
||||
retry: { enabled: false },
|
||||
throttle: { enabled: false },
|
||||
}),
|
||||
});
|
||||
// Load our app into probot
|
||||
probot.load(myProbotApp);
|
||||
});
|
||||
|
||||
test('creates a comment when an issue is opened', async () => {
|
||||
const mock = nock('https://api.github.com')
|
||||
// Test that we correctly return a test token
|
||||
.post('/app/installations/2/access_tokens')
|
||||
.reply(200, {
|
||||
token: 'test',
|
||||
permissions: {
|
||||
issues: 'write',
|
||||
},
|
||||
})
|
||||
|
||||
// Test that a comment is posted
|
||||
.post('/repos/hiimbex/testing-things/issues/1/comments', (body: any) => {
|
||||
expect(body).toMatchObject(issueCreatedBody);
|
||||
return true;
|
||||
})
|
||||
.reply(200);
|
||||
|
||||
// Receive a webhook event
|
||||
await probot.receive({ name: 'issues', payload });
|
||||
|
||||
expect(mock.pendingMocks()).toStrictEqual([]);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
nock.cleanAll();
|
||||
nock.enableNetConnect();
|
||||
});
|
||||
});
|
||||
|
||||
// For more information about testing with Jest see:
|
||||
// https://facebook.github.io/jest/
|
||||
|
||||
// For more information about using TypeScript in your tests, Jest recommends:
|
||||
// https://github.com/kulshekhar/ts-jest
|
||||
|
||||
// For more information about testing with Nock see:
|
||||
// https://github.com/nock/nock
|
||||
Reference in New Issue
Block a user