Skip to content

Commit 23b475a

Browse files
committed
test: add default, repository, organization, and combined values tests
1 parent c89db13 commit 23b475a

9 files changed

+290
-1
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
run "defaults_file_repositories" {
2+
command = plan
3+
4+
variables {
5+
path = "tests/fixtures/defaults.yaml"
6+
}
7+
8+
assert {
9+
condition = local.config.repositories != []
10+
error_message = "Expected defaults config file to produce non-empty repositories local."
11+
}
12+
13+
assert {
14+
condition = length(local.config.repositories) == 1
15+
error_message = "Expected defaults config file to produce exactly one repository."
16+
}
17+
18+
assert {
19+
condition = local.config.repositories[0].name == "example"
20+
error_message = "Expected defaults config file to produce the repository named 'example'."
21+
}
22+
}
23+
24+
run "defaults_file_repositories_values" {
25+
command = plan
26+
27+
variables {
28+
path = "tests/fixtures/defaults.yaml"
29+
}
30+
31+
assert {
32+
condition = local.repositories == [{
33+
name = "example"
34+
description = null
35+
homepage_url = null
36+
topics = null
37+
visibility = null
38+
is_template = null
39+
has_issues = null
40+
has_discussions = null
41+
has_projects = null
42+
has_wiki = null
43+
allow_merge_commit = null
44+
allow_squash_merge = null
45+
allow_rebase_merge = null
46+
allow_auto_merge = null
47+
delete_branch_on_merge = null
48+
}]
49+
error_message = "The example repository defaults expected to be null."
50+
}
51+
}

terraform/tests/empty.tftest.hcl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ run "empty_file" {
77

88
assert {
99
condition = local.config == null
10-
error_message = "Expected empty file to produce empty result."
10+
error_message = "Expected empty file to produce empty configuration."
11+
}
12+
13+
assert {
14+
condition = local.repositories == []
15+
error_message = "Expected empty file to produce empty repositories."
1116
}
1217
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
repositories:
3+
- name: example
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
organization:
3+
all-repositories:
4+
# Properties
5+
visibility: public
6+
# Features
7+
has_issues: false
8+
has_discussions: false
9+
has_projects: false
10+
has_wiki: false
11+
# Settings
12+
allow_merge_commit: false
13+
allow_squash_merge: false
14+
allow_rebase_merge: false
15+
allow_auto_merge: false
16+
delete_branch_on_merge: false
17+
repositories:
18+
- name: example
19+
# Metadata
20+
description: An example repository
21+
homepage_url: https://example.com
22+
topics:
23+
- example-topic
24+
# Properties
25+
visibility: private
26+
is_template: true
27+
# Features
28+
has_issues: true
29+
has_discussions: true
30+
has_projects: true
31+
has_wiki: true
32+
# Settings
33+
allow_merge_commit: true
34+
allow_squash_merge: true
35+
allow_rebase_merge: true
36+
allow_auto_merge: true
37+
delete_branch_on_merge: true
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
organization:
3+
all-repositories:
4+
# Properties
5+
visibility: private
6+
# Features
7+
has_issues: true
8+
has_discussions: true
9+
has_projects: true
10+
has_wiki: true
11+
# Settings
12+
allow_merge_commit: true
13+
allow_squash_merge: true
14+
allow_rebase_merge: true
15+
allow_auto_merge: true
16+
delete_branch_on_merge: true
17+
repositories:
18+
- name: example
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
repositories:
3+
- name: example
4+
# Metadata
5+
description: An example repository
6+
homepage_url: https://example.com
7+
topics:
8+
- example-topic
9+
# Properties
10+
visibility: private
11+
is_template: true
12+
# Features
13+
has_issues: true
14+
has_discussions: true
15+
has_projects: true
16+
has_wiki: true
17+
# Settings
18+
allow_merge_commit: true
19+
allow_squash_merge: true
20+
allow_rebase_merge: true
21+
allow_auto_merge: true
22+
delete_branch_on_merge: true
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
run "organization_repository_repositories" {
2+
command = plan
3+
4+
variables {
5+
path = "tests/fixtures/organization-repository-values.yaml"
6+
}
7+
8+
assert {
9+
condition = local.config.repositories != []
10+
error_message = "Expected defaults config file to produce non-empty repositories local."
11+
}
12+
13+
assert {
14+
condition = length(local.config.repositories) == 1
15+
error_message = "Expected defaults config file to produce exactly one repository."
16+
}
17+
18+
assert {
19+
condition = local.config.repositories[0].name == "example"
20+
error_message = "Expected defaults config file to produce the repository named 'example'."
21+
}
22+
}
23+
24+
run "organization_repository_repositories_values" {
25+
command = plan
26+
27+
variables {
28+
path = "tests/fixtures/organization-repository-values.yaml"
29+
}
30+
31+
assert {
32+
condition = local.repositories == [{
33+
name = "example"
34+
description = "An example repository"
35+
homepage_url = "https://example.com"
36+
topics = ["example-topic"]
37+
visibility = "private"
38+
is_template = true
39+
has_issues = true
40+
has_discussions = true
41+
has_projects = true
42+
has_wiki = true
43+
allow_merge_commit = true
44+
allow_squash_merge = true
45+
allow_rebase_merge = true
46+
allow_auto_merge = true
47+
delete_branch_on_merge = true
48+
}]
49+
error_message = "The example repository expected to be set to concrete values."
50+
}
51+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
run "organization_values_repositories" {
2+
command = plan
3+
4+
variables {
5+
path = "tests/fixtures/organization-values.yaml"
6+
}
7+
8+
assert {
9+
condition = local.config.repositories != []
10+
error_message = "Expected defaults config file to produce non-empty repositories local."
11+
}
12+
13+
assert {
14+
condition = length(local.config.repositories) == 1
15+
error_message = "Expected defaults config file to produce exactly one repository."
16+
}
17+
18+
assert {
19+
condition = local.config.repositories[0].name == "example"
20+
error_message = "Expected defaults config file to produce the repository named 'example'."
21+
}
22+
}
23+
24+
run "organization_values_repositories_values" {
25+
command = plan
26+
27+
variables {
28+
path = "tests/fixtures/organization-values.yaml"
29+
}
30+
31+
assert {
32+
condition = local.repositories == [{
33+
name = "example"
34+
description = null
35+
homepage_url = null
36+
topics = null
37+
visibility = "private"
38+
is_template = null
39+
has_issues = true
40+
has_discussions = true
41+
has_projects = true
42+
has_wiki = true
43+
allow_merge_commit = true
44+
allow_squash_merge = true
45+
allow_rebase_merge = true
46+
allow_auto_merge = true
47+
delete_branch_on_merge = true
48+
}]
49+
error_message = "The example repository expected to be set to concrete values."
50+
}
51+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
run "repository_values_file_repositories" {
2+
command = plan
3+
4+
variables {
5+
path = "tests/fixtures/repository-values.yaml"
6+
}
7+
8+
assert {
9+
condition = local.config.repositories != []
10+
error_message = "Expected defaults config file to produce non-empty repositories local."
11+
}
12+
13+
assert {
14+
condition = length(local.config.repositories) == 1
15+
error_message = "Expected defaults config file to produce exactly one repository."
16+
}
17+
18+
assert {
19+
condition = local.config.repositories[0].name == "example"
20+
error_message = "Expected defaults config file to produce the repository named 'example'."
21+
}
22+
}
23+
24+
run "repository_values_file_repositories_values" {
25+
command = plan
26+
27+
variables {
28+
path = "tests/fixtures/repository-values.yaml"
29+
}
30+
31+
assert {
32+
condition = local.repositories == [{
33+
name = "example"
34+
description = "An example repository"
35+
homepage_url = "https://example.com"
36+
topics = ["example-topic"]
37+
visibility = "private"
38+
is_template = true
39+
has_issues = true
40+
has_discussions = true
41+
has_projects = true
42+
has_wiki = true
43+
allow_merge_commit = true
44+
allow_squash_merge = true
45+
allow_rebase_merge = true
46+
allow_auto_merge = true
47+
delete_branch_on_merge = true
48+
}]
49+
error_message = "The example repository expected to be set to concrete values."
50+
}
51+
}

0 commit comments

Comments
 (0)