Skip to content

Commit dbea8d8

Browse files
authored
updated tests
1 parent 826378d commit dbea8d8

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

.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: 21 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,41 @@ 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').find { |rule| rule['type'] == 'pull_request' }
71+
assert_not_nil(classic_rules || rulesets, 'We should not allow merge to main branch without PR')
7172
end
7273

7374
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 ')
75+
classic_rules = @obj.rules_required_pull_request_reviews('develop')
76+
rulesets = @obj.get_branch_ruleset('develop').find { |rule| rule['type'] == 'pull_request' }
77+
assert_not_nil(classic_rules || rulesets, 'We should not allow merge to develop branch without PR ')
7678
end
7779

7880
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"]
81+
classic_required_approving_review_count = @obj.rules_required_pull_request_reviews('develop').nil? || @obj.rules_required_pull_request_reviews('develop')["required_approving_review_count"]
82+
pull_request_rulesets_rules = @obj.get_branch_ruleset('develop').find { |rule| rule['type'] == 'pull_request' }
83+
rulesets_required_approving_review_count = pull_request_rulesets_rules['parameters']['required_approving_review_count']
8084
expected = 2
81-
assert_equal(expected, actual, 'We should have 2 approvals before merge to develop branch')
85+
required_approving_review_count = classic_required_approving_review_count == expected || rulesets_required_approving_review_count == expected
86+
assert_true(required_approving_review_count, 'We should have 2 approvals before merge to develop branch')
8287
end
8388

8489
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"]
90+
classic_required_approving_review_count = @obj.rules_required_pull_request_reviews('main').nil? || @obj.rules_required_pull_request_reviews('main')["required_approving_review_count"]
91+
pull_request_rulesets_rules = @obj.get_branch_ruleset('main').find { |rule| rule['type'] == 'pull_request' }
92+
rulesets_required_approving_review_count = pull_request_rulesets_rules['parameters']['required_approving_review_count']
8693
expected = 0
87-
assert_equal(expected, actual, 'We shouldn\'t have any approvals before merge to main branch')
94+
required_approving_review_count = classic_required_approving_review_count == expected || rulesets_required_approving_review_count == expected
95+
assert_true(required_approving_review_count, 'We shouldn\'t have any approvals before merge to main branch')
8896
end
8997

9098
def test_approve_from_user
9199
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}")
100+
classic_require_code_owner_review = @obj.rules_required_pull_request_reviews('develop').nil? || @obj.rules_required_pull_request_reviews('develop')["require_code_owner_reviews"]
101+
pull_request_rulesets_rules = @obj.get_branch_ruleset('develop').find { |rule| rule['type'] == 'pull_request' }
102+
rulesets_require_code_owner_review = pull_request_rulesets_rules['parameters']['require_code_owner_review']
103+
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}")
94104
end
95105

96106
def test_PR_template_present

0 commit comments

Comments
 (0)