@@ -20,8 +20,8 @@ package fetchers
20
20
import (
21
21
"context"
22
22
"fmt"
23
+ "sync"
23
24
"testing"
24
- "time"
25
25
26
26
"cloud.google.com/go/asset/apiv1/assetpb"
27
27
"github.com/stretchr/testify/assert"
@@ -60,6 +60,7 @@ func (s *GcpMonitoringFetcherTestSuite) TearDownTest() {
60
60
61
61
func (s * GcpMonitoringFetcherTestSuite ) TestMonitoringFetcher_Fetch_Success () {
62
62
ctx := context .Background ()
63
+ wg := sync.WaitGroup {}
63
64
mockInventoryService := & inventory.MockServiceAPI {}
64
65
fetcher := NewGcpMonitoringFetcher (ctx , testhelper .NewLogger (s .T ()), s .resourceCh , mockInventoryService )
65
66
expectedAsset := & inventory.MonitoringAsset {
@@ -82,27 +83,26 @@ func (s *GcpMonitoringFetcherTestSuite) TestMonitoringFetcher_Fetch_Success() {
82
83
close (ch )
83
84
}).Once ()
84
85
86
+ wg .Add (1 )
87
+
85
88
go func () {
89
+ defer wg .Done ()
86
90
err := fetcher .Fetch (ctx , cycle.Metadata {})
87
91
s .NoError (err )
88
92
}()
89
93
90
- select {
91
- case res := <- s .resourceCh :
92
- s .NotNil (res .Resource )
93
- asset , ok := res .Resource .(* GcpMonitoringAsset )
94
- s .True (ok )
95
- s .Len (asset .Asset .Alerts , 1 )
96
- s .Len (asset .Asset .LogMetrics , 1 )
97
- s .Equal (expectedAsset .Alerts , asset .Asset .Alerts )
98
- s .Equal (expectedAsset .LogMetrics , asset .Asset .LogMetrics )
99
- s .Equal (expectedAsset .CloudAccount .AccountId , asset .Asset .CloudAccount .AccountId )
100
- s .Equal (fetching .MonitoringIdentity , asset .Type )
101
- s .Equal (fetching .GcpMonitoringType , asset .subType )
102
- case <- time .After (time .Second ):
103
- s .Fail ("Test timed out waiting for resource" )
104
- }
105
-
94
+ res := <- s .resourceCh
95
+ s .NotNil (res .Resource )
96
+ asset , ok := res .Resource .(* GcpMonitoringAsset )
97
+ s .True (ok )
98
+ s .Len (asset .Asset .Alerts , 1 )
99
+ s .Len (asset .Asset .LogMetrics , 1 )
100
+ s .Equal (expectedAsset .Alerts , asset .Asset .Alerts )
101
+ s .Equal (expectedAsset .LogMetrics , asset .Asset .LogMetrics )
102
+ s .Equal (expectedAsset .CloudAccount .AccountId , asset .Asset .CloudAccount .AccountId )
103
+ s .Equal (fetching .MonitoringIdentity , asset .Type )
104
+ s .Equal (fetching .GcpMonitoringType , asset .subType )
105
+ wg .Wait ()
106
106
mockInventoryService .AssertExpectations (s .T ())
107
107
}
108
108
0 commit comments