refactor(cve): improve CVE test time by mocking trivy (#1184)

- refactor(cve): remove the global of type cveinfo.CveInfo from the extensions package
  Replace it with an attribute on controller level
- refactor(controller): extract initialization logic from controller.Run()
- test(cve): mock cve scanner in cli tests

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>
This commit is contained in:
Andrei Aaron
2023-02-10 07:04:52 +02:00
committed by GitHub
parent c1de15c87b
commit d12836e69c
15 changed files with 552 additions and 131 deletions
+14 -12
View File
@@ -187,6 +187,7 @@ func CopyTestFiles(sourceDir, destDir string) {
}
type Controller interface {
Init(ctx context.Context) error
Run(ctx context.Context) error
Shutdown()
GetPort() int
@@ -196,14 +197,22 @@ type ControllerManager struct {
controller Controller
}
func (cm *ControllerManager) RunServer(ctx context.Context) {
// Useful to be able to call in the same goroutine for testing purposes
if err := cm.controller.Run(ctx); !errors.Is(err, http.ErrServerClosed) {
panic(err)
}
}
func (cm *ControllerManager) StartServer() {
// this blocks
ctx := context.Background()
if err := cm.controller.Init(ctx); err != nil {
panic(err)
}
go func() {
if err := cm.controller.Run(ctx); err != nil {
return
}
cm.RunServer(ctx)
}()
}
@@ -217,14 +226,7 @@ func (cm *ControllerManager) WaitServerToBeReady(port string) {
}
func (cm *ControllerManager) StartAndWait(port string) {
// this blocks
ctx := context.Background()
go func() {
if err := cm.controller.Run(ctx); err != nil {
return
}
}()
cm.StartServer()
url := GetBaseURL(port)
WaitTillServerReady(url)