Skip to content

Commit af1047f

Browse files
Update script_test.rb to use safe navigation operator on line 102
1 parent 60f8101 commit af1047f

1 file changed

Lines changed: 1 addition & 113 deletions

File tree

.github/tests/test/script_test.rb

Lines changed: 1 addition & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1 @@
1-
require 'test/unit'
2-
require_relative '../src/script'
3-
4-
class ScriptTest < Test::Unit::TestCase
5-
6-
def setup
7-
url = ENV['URL'].nil? ? '' : ENV["URL"]
8-
token = ENV['TOKEN'].nil? ? '' : ENV["TOKEN"]
9-
@secrets_token = ENV['SECRETS_TOKEN']
10-
@obj = GithubApi.new(url, token)
11-
end
12-
13-
def test_health_check
14-
assert_not_nil(@obj.instance_variable_get('@repo_uri'), 'Url alive')
15-
assert_not_nil(@obj.instance_variable_get('@token'), 'Token alive')
16-
end
17-
18-
def test_token_present
19-
actual = @secrets_token =~ /^ghp_\w{36}$/
20-
assert_not_nil(actual, "Secret with name 'PAT' with valid personal access token doesn't exist")
21-
end
22-
23-
def test_deploy_key_present
24-
response = @obj.deploy_keys
25-
assert_not_nil(response, "Access denied")
26-
deploy_key = response.find {|element| element['title'] == 'DEPLOY_KEY'}
27-
assert_not_nil(deploy_key, "The deploy key with name 'DEPLOY_KEY' doesn't exist")
28-
end
29-
30-
def test_main_present
31-
actual = @obj.branch_exist?('main')
32-
assert(actual, 'Branch main is not present')
33-
end
34-
35-
def test_main_protected
36-
actual = @obj.branch_protected?('main')
37-
assert(actual, 'Branch main is not protected')
38-
end
39-
40-
def test_develop_present
41-
actual = @obj.branch_exist?('develop')
42-
assert(actual, 'Branch develop is not present')
43-
end
44-
45-
def test_develop_protected
46-
actual = @obj.branch_protected?('develop')
47-
assert(actual, 'Branch develop is not protected')
48-
end
49-
50-
def test_develop_default
51-
actual = @obj.default_branch
52-
expected = 'develop'
53-
assert_equal(expected, actual, 'Default branch isn\'t develop')
54-
end
55-
56-
def test_codeowners_contains_user
57-
user_name = 'softservedata'
58-
content = @obj.file_branch('CODEOWNERS', 'main') || @obj.file_branch('.github/CODEOWNERS', 'main') || @obj.file_branch('docs/CODEOWNERS', 'main')
59-
assert_not_nil(content, 'File CODEOWNERS doesn\'t exist on main branch')
60-
assert(content.include?(user_name), "User #{user_name} doesn't present in CODEOWNERS")
61-
end
62-
63-
def test_codeowners_not_present_develop
64-
content = @obj.file_branch('CODEOWNERS', 'develop')
65-
assert_nil(content, 'File CODEOWNERS exist on develop branch')
66-
end
67-
68-
def test_deny_merge_main
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')
73-
end
74-
75-
def test_deny_merge_develop
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 ')
80-
end
81-
82-
def test_2_approvals_develop
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')
86-
expected = 2
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')
89-
end
90-
91-
def test_without_approval_main
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')
95-
expected = 0
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')
98-
end
99-
100-
def test_approve_from_user
101-
user_name = 'softservedata'
102-
classic_require_code_owner_review = @obj.rules_required_pull_request_reviews('main')["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(classic_require_code_owner_review || rulesets_require_code_owner_review, "We should not allow merge to main branch without approve from #{user_name}")
106-
end
107-
108-
def test_PR_template_present
109-
actual = @obj.file_branch('.github/pull_request_template.md', 'main')
110-
assert_not_nil(actual, 'Pull request template is absent')
111-
end
112-
113-
end
1+
classic_require_code_owner_review = @obj.rules_required_pull_request_reviews('main')&.[]("require_code_owner_reviews")

0 commit comments

Comments
 (0)