108 lines
2.5 KiB
TypeScript
108 lines
2.5 KiB
TypeScript
import * as core from '@actions/core'
|
|
import * as github from '@actions/github'
|
|
import { context } from '@actions/github'
|
|
import { getclas } from '../src/checkcla'
|
|
import { lockPullRequest } from '../src/pullRequestLock'
|
|
import { run } from '../src/main'
|
|
import { mocked } from 'ts-jest/utils'
|
|
|
|
jest.mock('@actions/core')
|
|
jest.mock('@actions/github')
|
|
jest.mock('../src/pullRequestLock')
|
|
jest.mock('../src/checkcla')
|
|
const mockedGetClas = mocked(getclas)
|
|
const mockedLockPullRequest = mocked(lockPullRequest)
|
|
|
|
|
|
describe('Pull request event', () => {
|
|
|
|
beforeEach(async () => {
|
|
// @ts-ignore
|
|
github.context = {
|
|
eventName: 'pull_request',
|
|
ref: 'refs/pull/232/merge',
|
|
workflow: 'CLA Assistant',
|
|
action: 'ibakshaygithub-action-1',
|
|
actor: 'ibakshay',
|
|
payload: {
|
|
action: 'closed',
|
|
number: '1',
|
|
pull_request: {
|
|
number: 1,
|
|
title: 'test',
|
|
user: {
|
|
login: 'ibakshay',
|
|
},
|
|
},
|
|
repository: {
|
|
name: 'auto-assign',
|
|
owner: {
|
|
login: 'ibakshay',
|
|
},
|
|
},
|
|
},
|
|
repo: {
|
|
owner: 'ibakshay',
|
|
repo: 'auto-assign',
|
|
},
|
|
issue: {
|
|
owner: 'kentaro-m',
|
|
repo: 'auto-assign',
|
|
number: 1,
|
|
},
|
|
sha: ''
|
|
}
|
|
|
|
}
|
|
)
|
|
|
|
test('the lockPullRequest method should be called if there is a pull request merge/closed', async () => {
|
|
|
|
await run()
|
|
expect(mockedLockPullRequest).toHaveBeenCalled()
|
|
|
|
|
|
})
|
|
|
|
test('the checkcla method should not called if there is a pull request merge/closed', async () => {
|
|
|
|
await run()
|
|
expect(mockedGetClas).not.toHaveBeenCalled()
|
|
})
|
|
|
|
test('the lockPullRequest method should not be called if there is a pull request opened', async () => {
|
|
|
|
github.context.payload.action = 'opened'
|
|
await run()
|
|
|
|
expect(mockedLockPullRequest).not.toHaveBeenCalled()
|
|
|
|
})
|
|
|
|
test('the checkcla method should be called if there is a pull request opened', async () => {
|
|
|
|
github.context.payload.action = 'opened'
|
|
await run()
|
|
expect(mockedGetClas).toHaveBeenCalled()
|
|
|
|
})
|
|
|
|
test('the lockPullRequest method should not be called if there is a pull request sync', async () => {
|
|
|
|
github.context.payload.action = 'synchronize'
|
|
|
|
await run()
|
|
|
|
expect(mockedLockPullRequest).not.toHaveBeenCalled()
|
|
|
|
})
|
|
|
|
test('the checkcla method should be called if there is a pull request sync', async () => {
|
|
github.context.payload.action = 'synchronize'
|
|
await run()
|
|
expect(mockedGetClas).toHaveBeenCalled()
|
|
|
|
})
|
|
|
|
|
|
}) |