Add tests to cover enableBranchProtectionOnDefaultRepoBranch parameters
Added new tests to cover requiredApprovingReviewCount, requiredCommitSigning, and restrictions. Signed-off-by: Trevor Grieger <tgrieger@salesforce.com>
This commit is contained in:
@@ -1270,4 +1270,556 @@ describe('publish:github', () => {
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
});
|
||||
it('should call enableBranchProtectionOnDefaultRepoBranch with the correct values of requiredApprovingReviewCount', async () => {
|
||||
mockOctokit.rest.users.getByUsername.mockResolvedValue({
|
||||
data: { type: 'User' },
|
||||
});
|
||||
|
||||
mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({
|
||||
data: {
|
||||
name: 'repo',
|
||||
},
|
||||
});
|
||||
|
||||
await action.handler(mockContext);
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
requiredApprovingReviewCount: 2,
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 2,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
requiredApprovingReviewCount: 0,
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 0,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
});
|
||||
it('should call enableBranchProtectionOnDefaultRepoBranch with the correct values of restrictions', async () => {
|
||||
mockOctokit.rest.users.getByUsername.mockResolvedValue({
|
||||
data: { type: 'User' },
|
||||
});
|
||||
|
||||
mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({
|
||||
data: {
|
||||
name: 'repo',
|
||||
},
|
||||
});
|
||||
|
||||
await action.handler(mockContext);
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
restrictions: {
|
||||
users: ['user'],
|
||||
teams: [],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: {
|
||||
users: ['user'],
|
||||
teams: [],
|
||||
},
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
restrictions: {
|
||||
users: [],
|
||||
teams: ['team'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: {
|
||||
users: [],
|
||||
teams: ['team'],
|
||||
},
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
restrictions: {
|
||||
users: [],
|
||||
teams: [],
|
||||
apps: ['app'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: {
|
||||
users: [],
|
||||
teams: [],
|
||||
apps: ['app'],
|
||||
},
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
restrictions: {
|
||||
users: ['user'],
|
||||
teams: ['team'],
|
||||
apps: ['app'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: {
|
||||
users: ['user'],
|
||||
teams: ['team'],
|
||||
apps: ['app'],
|
||||
},
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
restrictions: {
|
||||
users: ['user1', 'user2'],
|
||||
teams: ['team1', 'team2'],
|
||||
apps: ['app1', 'app2'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: {
|
||||
users: ['user1', 'user2'],
|
||||
teams: ['team1', 'team2'],
|
||||
apps: ['app1', 'app2'],
|
||||
},
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
});
|
||||
it('should call enableBranchProtectionOnDefaultRepoBranch with the correct values of requiredCommitSigning', async () => {
|
||||
mockOctokit.rest.users.getByUsername.mockResolvedValue({
|
||||
data: { type: 'User' },
|
||||
});
|
||||
|
||||
mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({
|
||||
data: {
|
||||
name: 'repo',
|
||||
},
|
||||
});
|
||||
|
||||
await action.handler(mockContext);
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
requiredCommitSigning: false,
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
requiredCommitSigning: true,
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: true,
|
||||
});
|
||||
});
|
||||
it('should call enableBranchProtectionOnDefaultRepoBranch with the correct values of bypassPullRequestAllowances', async () => {
|
||||
mockOctokit.rest.users.getByUsername.mockResolvedValue({
|
||||
data: { type: 'User' },
|
||||
});
|
||||
|
||||
mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({
|
||||
data: {
|
||||
name: 'repo',
|
||||
},
|
||||
});
|
||||
|
||||
await action.handler(mockContext);
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: undefined,
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
bypassPullRequestAllowances: {
|
||||
users: ['user'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: {
|
||||
users: ['user'],
|
||||
},
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
bypassPullRequestAllowances: {
|
||||
teams: ['team'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: {
|
||||
teams: ['team'],
|
||||
},
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
bypassPullRequestAllowances: {
|
||||
apps: ['app'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: {
|
||||
apps: ['app'],
|
||||
},
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
bypassPullRequestAllowances: {
|
||||
users: ['user'],
|
||||
teams: ['team'],
|
||||
apps: ['app'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: {
|
||||
users: ['user'],
|
||||
teams: ['team'],
|
||||
apps: ['app'],
|
||||
},
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
|
||||
await action.handler({
|
||||
...mockContext,
|
||||
input: {
|
||||
...mockContext.input,
|
||||
bypassPullRequestAllowances: {
|
||||
users: ['user1', 'user2'],
|
||||
teams: ['team1', 'team2'],
|
||||
apps: ['app1', 'app2'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(enableBranchProtectionOnDefaultRepoBranch).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
client: mockOctokit,
|
||||
repoName: 'repo',
|
||||
logger: mockContext.logger,
|
||||
defaultBranch: 'master',
|
||||
requireCodeOwnerReviews: false,
|
||||
bypassPullRequestAllowances: {
|
||||
users: ['user1', 'user2'],
|
||||
teams: ['team1', 'team2'],
|
||||
apps: ['app1', 'app2'],
|
||||
},
|
||||
requiredApprovingReviewCount: 1,
|
||||
restrictions: undefined,
|
||||
requiredStatusCheckContexts: [],
|
||||
requireBranchesToBeUpToDate: true,
|
||||
requiredConversationResolution: false,
|
||||
enforceAdmins: true,
|
||||
dismissStaleReviews: false,
|
||||
requiredCommitSigning: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user