Skip to content

Commit 308020e

Browse files
committed
Add SuperprojectType field to check configuration
In some cases, the context of the project is relevant to the check configuration. Previously, this was dealt with by the code of the check function, but it seems more logical to handle it in the check configuration, since that is already being done there with the project type.
1 parent 54b76a8 commit 308020e

File tree

3 files changed

+1474
-1377
lines changed

3 files changed

+1474
-1377
lines changed

internal/rule/rule.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func Runner(project project.Type) {
6262
func shouldRun(ruleConfiguration ruleconfiguration.Type, currentProject project.Type) (bool, error) {
6363
configurationRuleModes := configuration.RuleModes(currentProject.SuperprojectType)
6464

65-
if !ruleConfiguration.ProjectType.Matches(currentProject.ProjectType) {
65+
if !(ruleConfiguration.ProjectType.Matches(currentProject.ProjectType) && ruleConfiguration.SuperprojectType.Matches(currentProject.SuperprojectType)) {
6666
return false, nil
6767
}
6868

internal/rule/rule_test.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,25 @@ func Test_shouldRun(t *testing.T) {
3131
testTables := []struct {
3232
testName string
3333
ruleProjectType projecttype.Type
34+
ruleSuperprojectType projecttype.Type
3435
projectType projecttype.Type
36+
superprojectType projecttype.Type
3537
disableModes []rulemode.Type
3638
enableModes []rulemode.Type
3739
libraryManagerSetting string
3840
complianceSetting string
3941
shouldRunAssertion assert.BoolAssertionFunc
4042
errorAssertion assert.ErrorAssertionFunc
4143
}{
42-
{"Project type mismatch", projecttype.Library, projecttype.Sketch, []rulemode.Type{}, []rulemode.Type{}, "false", "specification", assert.False, assert.NoError},
43-
{"Disable mode match", projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{}, "submit", "specification", assert.False, assert.NoError},
44-
{"Enable mode match", projecttype.Library, projecttype.Library, []rulemode.Type{}, []rulemode.Type{rulemode.LibraryManagerSubmission}, "submit", "specification", assert.True, assert.NoError},
45-
{"Disable mode default", projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.Default}, []rulemode.Type{rulemode.LibraryManagerSubmission}, "update", "specification", assert.False, assert.NoError},
46-
{"Disable mode default override", projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.Default}, []rulemode.Type{rulemode.LibraryManagerSubmission}, "submit", "specification", assert.True, assert.NoError},
47-
{"Enable mode default", projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{rulemode.Default}, "update", "specification", assert.True, assert.NoError},
48-
{"Enable mode default override", projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{rulemode.Default}, "submit", "specification", assert.False, assert.NoError},
49-
{"Unable to resolve", projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{rulemode.LibraryManagerIndexed}, "false", "specification", assert.False, assert.Error},
44+
{"Project type mismatch", projecttype.Library, projecttype.All, projecttype.Sketch, projecttype.Sketch, []rulemode.Type{}, []rulemode.Type{}, "false", "specification", assert.False, assert.NoError},
45+
{"Superproject type mismatch", projecttype.Sketch, projecttype.Library, projecttype.Sketch, projecttype.Sketch, []rulemode.Type{}, []rulemode.Type{}, "false", "specification", assert.False, assert.NoError},
46+
{"Disable mode match", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{}, "submit", "specification", assert.False, assert.NoError},
47+
{"Enable mode match", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{}, []rulemode.Type{rulemode.LibraryManagerSubmission}, "submit", "specification", assert.True, assert.NoError},
48+
{"Disable mode default", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.Default}, []rulemode.Type{rulemode.LibraryManagerSubmission}, "update", "specification", assert.False, assert.NoError},
49+
{"Disable mode default override", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.Default}, []rulemode.Type{rulemode.LibraryManagerSubmission}, "submit", "specification", assert.True, assert.NoError},
50+
{"Enable mode default", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{rulemode.Default}, "update", "specification", assert.True, assert.NoError},
51+
{"Enable mode default override", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{rulemode.Default}, "submit", "specification", assert.False, assert.NoError},
52+
{"Unable to resolve", projecttype.Library, projecttype.All, projecttype.Library, projecttype.Library, []rulemode.Type{rulemode.LibraryManagerSubmission}, []rulemode.Type{rulemode.LibraryManagerIndexed}, "false", "specification", assert.False, assert.Error},
5053
}
5154

5255
flags := test.ConfigurationFlags()
@@ -58,13 +61,15 @@ func Test_shouldRun(t *testing.T) {
5861
configuration.Initialize(flags, []string{"/foo"})
5962

6063
ruleConfiguration := ruleconfiguration.Type{
61-
ProjectType: testTable.ruleProjectType,
62-
DisableModes: testTable.disableModes,
63-
EnableModes: testTable.enableModes,
64+
ProjectType: testTable.ruleProjectType,
65+
SuperprojectType: testTable.ruleSuperprojectType,
66+
DisableModes: testTable.disableModes,
67+
EnableModes: testTable.enableModes,
6468
}
6569

6670
project := project.Type{
67-
ProjectType: testTable.projectType,
71+
ProjectType: testTable.projectType,
72+
SuperprojectType: testTable.superprojectType,
6873
}
6974
run, err := shouldRun(ruleConfiguration, project)
7075
testTable.errorAssertion(t, err, testTable.testName)

0 commit comments

Comments
 (0)