Skip to content

Commit 6f1db3b

Browse files
authored
tests updated
1 parent 440cbbd commit 6f1db3b

File tree

4 files changed

+36
-23
lines changed

4 files changed

+36
-23
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/pull_request_template.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

.github/tests/src/script.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,23 @@ def rules_required_pull_request_reviews(branch_name)
6161
JSON.parse(response.body)["required_pull_request_reviews"]
6262
end
6363

64+
def get_branch_ruleset(branch_name)
65+
branch_ruleset = nil
66+
response = get("rulesets")
67+
JSON.parse(response.body).each do |ruleset|
68+
id = ruleset['id']
69+
details = get("rulesets/#{id}")
70+
if JSON.parse(details.body)['conditions']['ref_name']['include'].any? {|elem| elem.include?(branch_name)}
71+
branch_ruleset = JSON.parse(details.body)['rules']
72+
end
73+
end
74+
branch_ruleset
75+
end
76+
6477
def deploy_keys
6578
response = get("keys")
6679
return nil if response.code != '200'
6780
JSON.parse(response.body)
6881
end
6982

7083
end
71-
72-

.github/tests/test/script_test.rb

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def test_deploy_key_present
2929

3030
def test_main_present
3131
actual = @obj.branch_exist?('main')
32-
assert(actual, 'Branch nain is not present')
32+
assert(actual, 'Branch main is not present')
3333
end
3434

3535
def test_main_protected
@@ -66,31 +66,43 @@ def test_codeowners_not_present_develop
6666
end
6767

6868
def test_deny_merge_main
69-
actual = @obj.rules_required_pull_request_reviews('main')
70-
assert_not_nil(actual, 'We should not allow merge to main branch without PR')
69+
classic_rules = @obj.rules_required_pull_request_reviews('main')
70+
rulesets = @obj.get_branch_ruleset('main')
71+
rulesets_rules = rulesets&.find { |rule| rule['type'] == 'pull_request' }
72+
assert_not_nil(classic_rules || rulesets_rules, 'We should not allow merge to main branch without PR')
7173
end
7274

7375
def test_deny_merge_develop
74-
actual = @obj.rules_required_pull_request_reviews('develop')
75-
assert_not_nil(actual, 'We should not allow merge to develop branch without PR ')
76+
classic_rules = @obj.rules_required_pull_request_reviews('develop')
77+
rulesets = @obj.get_branch_ruleset('develop')
78+
rulesets_rules = rulesets&.find { |rule| rule['type'] == 'pull_request' }
79+
assert_not_nil(classic_rules || rulesets_rules, 'We should not allow merge to develop branch without PR ')
7680
end
7781

7882
def test_2_approvals_develop
79-
actual = @obj.rules_required_pull_request_reviews('develop').nil? || @obj.rules_required_pull_request_reviews('develop')["required_approving_review_count"]
83+
classic_required_approving_review_count = @obj.rules_required_pull_request_reviews('develop').nil? || @obj.rules_required_pull_request_reviews('develop')["required_approving_review_count"]
84+
pull_request_rulesets_rules = @obj.get_branch_ruleset('develop')
85+
rulesets_required_approving_review_count = pull_request_rulesets_rules&.find { |rule| rule['type'] == 'pull_request' }&.[]('parameters')&.[]('required_approving_review_count')
8086
expected = 2
81-
assert_equal(expected, actual, 'We should have 2 approvals before merge to develop branch')
87+
required_approving_review_count = classic_required_approving_review_count == expected || rulesets_required_approving_review_count == expected
88+
assert_true(required_approving_review_count, 'We should have 2 approvals before merge to develop branch')
8289
end
8390

8491
def test_without_approval_main
85-
actual = @obj.rules_required_pull_request_reviews('main').nil? || @obj.rules_required_pull_request_reviews('main')["required_approving_review_count"]
92+
classic_required_approving_review_count = @obj.rules_required_pull_request_reviews('main').nil? || @obj.rules_required_pull_request_reviews('main')["required_approving_review_count"]
93+
pull_request_rulesets_rules = @obj.get_branch_ruleset('main')
94+
rulesets_required_approving_review_count = pull_request_rulesets_rules&.find { |rule| rule['type'] == 'pull_request' }&.[]('parameters')&.[]('required_approving_review_count')
8695
expected = 0
87-
assert_equal(expected, actual, 'We shouldn\'t have any approvals before merge to main branch')
96+
required_approving_review_count = classic_required_approving_review_count == expected || rulesets_required_approving_review_count == expected
97+
assert_true(required_approving_review_count, 'We shouldn\'t have any approvals before merge to main branch')
8898
end
8999

90100
def test_approve_from_user
91101
user_name = 'online-marathon'
92-
actual = @obj.rules_required_pull_request_reviews('develop').nil? || @obj.rules_required_pull_request_reviews('develop')["require_code_owner_reviews"]
93-
assert_not_nil(actual, "We should not allow merge to main branch without approve from #{user_name}")
102+
classic_require_code_owner_review = @obj.rules_required_pull_request_reviews('main').nil? || @obj.rules_required_pull_request_reviews('develop')["require_code_owner_reviews"]
103+
pull_request_rulesets_rules = @obj.get_branch_ruleset('main')
104+
rulesets_require_code_owner_review = pull_request_rulesets_rules&.find { |rule| rule['type'] == 'pull_request' }&.[]('parameters')&.[]('require_code_owner_review')
105+
assert_not_nil(classic_require_code_owner_review || rulesets_require_code_owner_review, "We should not allow merge to main branch without approve from #{user_name}")
94106
end
95107

96108
def test_PR_template_present

0 commit comments

Comments
 (0)