Skip to content

Commit

Permalink
Moved to new libopenapi index creation mechanism.
Browse files Browse the repository at this point in the history
linter was getting upset. So, well.. let's do the hard work now.
  • Loading branch information
daveshanley committed Feb 23, 2023
1 parent fe5b437 commit c78cca2
Show file tree
Hide file tree
Showing 36 changed files with 309 additions and 155 deletions.
5 changes: 4 additions & 1 deletion cmd/dashboard.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,10 @@ func GetDashboardCommand() *cobra.Command {
pterm.Println()
return err
}
specIndex = index.NewSpecIndex(&rootNode)

config := index.CreateOpenAPIIndexConfig()
specIndex = index.NewSpecIndexWithConfig(&rootNode, config)

specInfo = vacuumReport.SpecInfo
specInfo.Generated = vacuumReport.Generated
}
Expand Down
5 changes: 3 additions & 2 deletions cui/dashboard_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@ func testBootDashboard() (*model.RuleResultSet, *index.SpecIndex, *datamodel.Spe
return nil, nil, nil
}

index := index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
specIndex := index.NewSpecIndexWithConfig(&rootNode, config)

// let's go ahead and lint the spec and pass the results to the dashboard.
defaultRuleSets := rulesets.BuildDefaultRuleSets()
Expand All @@ -135,5 +136,5 @@ func testBootDashboard() (*model.RuleResultSet, *index.SpecIndex, *datamodel.Spe
Spec: yamlBytes,
})
resultSet := model.NewRuleResultSet(applied.Results)
return resultSet, index, info
return resultSet, specIndex, info
}
3 changes: 2 additions & 1 deletion cui/stats_chart_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ func TestNewStatsChart(t *testing.T) {
info, _ := datamodel.ExtractSpecInfo(yamlBytes)
mErr := yaml.Unmarshal(yamlBytes, &rootNode)
assert.NoError(t, mErr)
idx := index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
idx := index.NewSpecIndexWithConfig(&rootNode, config)

chart := NewStatsChart(idx, info)

Expand Down
14 changes: 11 additions & 3 deletions functions/openapi/description_duplication_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ components:

rule := buildOpenApiTestRuleAction(path, "operation-description", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)

config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := DescriptionDuplication{}
res := def.RunRule(nodes, ctx)
Expand Down Expand Up @@ -79,7 +81,10 @@ components:

rule := buildOpenApiTestRuleAction(path, "operation-description", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)

config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := DescriptionDuplication{}
res := def.RunRule(nodes, ctx)

Expand Down Expand Up @@ -111,7 +116,10 @@ components:

rule := buildOpenApiTestRuleAction(path, "operation-description", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)

config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := DescriptionDuplication{}
res := def.RunRule(nodes, ctx)

Expand Down
6 changes: 4 additions & 2 deletions functions/openapi/duplicated_enum_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ components:

rule := buildOpenApiTestRuleAction(path, "duplicated_enum", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := DuplicatedEnum{}
res := def.RunRule(nodes, ctx)
Expand Down Expand Up @@ -94,7 +95,8 @@ components:

rule := buildOpenApiTestRuleAction(path, "duplicated_enum", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := DuplicatedEnum{}
res := def.RunRule(nodes, ctx)
Expand Down
45 changes: 30 additions & 15 deletions functions/openapi/examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ components:

rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -103,7 +104,8 @@ components:

rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -159,7 +161,8 @@ components:
//nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
def := Examples{}

ctx.SpecInfo = &datamodel.SpecInfo{
Expand Down Expand Up @@ -215,7 +218,8 @@ func TestExamples_RunRule_Fail_Inline_Schema_Multi_Examples(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
Expand Down Expand Up @@ -262,7 +266,8 @@ func TestExamples_RunRule_Fail_Inline_Schema_Missing_Summary(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -301,7 +306,8 @@ func TestExamples_RunRule_Fail_Single_Example_Not_An_Object(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -341,7 +347,8 @@ func TestExamples_RunRule_Fail_Single_Example_Invalid_Object(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -383,7 +390,8 @@ func TestExamples_RunRule_Fail_Single_Example_Invalid_Object_Response(t *testing
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
def := Examples{}
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
Expand Down Expand Up @@ -460,7 +468,8 @@ func TestExamples_RunRule_Fail_Single_Example_Param_No_Example(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -492,7 +501,8 @@ func TestExamples_RunRule_Fail_TopLevel_Param_No_Example(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -527,7 +537,8 @@ func TestExamples_RunRule_Fail_Component_No_Example(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -562,7 +573,8 @@ func TestExamples_RunRule_Fail_Component_Invalid_Inline_Example(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -599,7 +611,8 @@ func TestExamples_RunRule_Fail_Component_Invalid_ObjectLevel_Example(t *testing.
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -636,7 +649,8 @@ func TestExamples_RunRule_Fail_Parameters_Invalid_ObjectLevel_Example(t *testing
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down Expand Up @@ -686,7 +700,8 @@ func TestExamples_RunRule_Fail_ExternalAndValue(t *testing.T) {
nodes, _ := utils.FindNodes([]byte(yml), path)
rule := buildOpenApiTestRuleAction(path, "examples", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.SpecInfo = &datamodel.SpecInfo{
SpecFormat: model.OAS3,
}
Expand Down
18 changes: 12 additions & 6 deletions functions/openapi/formdata_consume_check_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ paths:

rule := buildOpenApiTestRuleAction(path, "formData_consume_check", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := FormDataConsumeCheck{}
res := def.RunRule(rootNode.Content, ctx)
Expand Down Expand Up @@ -81,7 +82,8 @@ paths:

rule := buildOpenApiTestRuleAction(path, "formData_consume_check", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := FormDataConsumeCheck{}
res := def.RunRule(rootNode.Content, ctx)
Expand Down Expand Up @@ -116,7 +118,8 @@ paths:

rule := buildOpenApiTestRuleAction(path, "formData_consume_check", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := FormDataConsumeCheck{}
res := def.RunRule(rootNode.Content, ctx)
Expand Down Expand Up @@ -151,7 +154,8 @@ paths:

rule := buildOpenApiTestRuleAction(path, "formData_consume_check", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := FormDataConsumeCheck{}
res := def.RunRule(rootNode.Content, ctx)
Expand Down Expand Up @@ -186,7 +190,8 @@ paths:

rule := buildOpenApiTestRuleAction(path, "formData_consume_check", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := FormDataConsumeCheck{}
res := def.RunRule(rootNode.Content, ctx)
Expand Down Expand Up @@ -219,7 +224,8 @@ paths:

rule := buildOpenApiTestRuleAction(path, "formData_consume_check", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := FormDataConsumeCheck{}
res := def.RunRule(rootNode.Content, ctx)
Expand Down
3 changes: 2 additions & 1 deletion functions/openapi/no_ambiguous_paths_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ paths:
rule := buildOpenApiTestRuleAction(path, "ambiguousPaths", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Rule = &rule
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := AmbiguousPaths{}
res := def.RunRule(nodes, ctx)
Expand Down
9 changes: 6 additions & 3 deletions functions/openapi/no_eval_descriptions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ components:
rule.PrecompiledPattern = comp
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), fo)
ctx.Rule = &rule
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := NoEvalInDescriptions{}
res := def.RunRule(nodes, ctx)
Expand Down Expand Up @@ -83,7 +84,8 @@ components:
rule.PrecompiledPattern = comp

ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), fo)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.Rule = &rule

def := NoEvalInDescriptions{}
Expand Down Expand Up @@ -119,7 +121,8 @@ components:
comp, _ := regexp.Compile(fo["pattern"])
rule.PrecompiledPattern = comp
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), fo)
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)
ctx.Rule = &rule

def := NoEvalInDescriptions{}
Expand Down
3 changes: 2 additions & 1 deletion functions/openapi/no_http_verbs_in_path_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ paths:
rule := buildOpenApiTestRuleAction(path, "verbsInPath", "", nil)
ctx := buildOpenApiTestContext(model.CastToRuleAction(rule.Then), nil)
ctx.Rule = &rule
ctx.Index = index.NewSpecIndex(&rootNode)
config := index.CreateOpenAPIIndexConfig()
ctx.Index = index.NewSpecIndexWithConfig(&rootNode, config)

def := VerbsInPaths{}
res := def.RunRule(nodes, ctx)
Expand Down
Loading

0 comments on commit c78cca2

Please sign in to comment.