Skip to content

Commit bc4c5ca

Browse files
authored
Merge pull request #121 from arduino/per1234/superproject-checkconfiguration-field
Add SuperprojectType field to check configuration
2 parents 439c93d + 5c621be commit bc4c5ca

File tree

7 files changed

+1484
-1404
lines changed

7 files changed

+1484
-1404
lines changed

Diff for: internal/rule/rule.go

+1-1
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 != currentProject.ProjectType {
65+
if !(ruleConfiguration.ProjectType.Matches(currentProject.ProjectType) && ruleConfiguration.SuperprojectType.Matches(currentProject.SuperprojectType)) {
6666
return false, nil
6767
}
6868

Diff for: internal/rule/rule_test.go

+17-12
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)