Skip to content

Commit 205236d

Browse files
committed
fix tests
1 parent 68ef0c9 commit 205236d

6 files changed

+85
-91
lines changed

internal/resources/fetching/fetchers/gcp/assets_fetcher_test.go

+12-13
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ package fetchers
1919

2020
import (
2121
"context"
22+
"sync"
2223
"testing"
23-
"time"
2424

2525
"cloud.google.com/go/asset/apiv1/assetpb"
2626
"github.com/stretchr/testify/mock"
@@ -56,7 +56,7 @@ func (s *GcpAssetsFetcherTestSuite) TearDownTest() {
5656
func (s *GcpAssetsFetcherTestSuite) TestFetcher_Fetch() {
5757
ctx, cancel := context.WithCancel(context.Background())
5858
defer cancel()
59-
59+
wg := sync.WaitGroup{}
6060
mockInventoryService := new(inventory.MockServiceAPI)
6161
fetcher := GcpAssetsFetcher{
6262
log: testhelper.NewLogger(s.T()),
@@ -77,23 +77,22 @@ func (s *GcpAssetsFetcherTestSuite) TestFetcher_Fetch() {
7777
close(ch)
7878
}).Once()
7979

80+
wg.Add(1)
8081
go func() {
82+
defer wg.Done()
8183
err := fetcher.Fetch(ctx, cycle.Metadata{})
8284
s.NoError(err)
8385
}()
8486

85-
select {
86-
case res := <-s.resourceCh:
87-
s.NotNil(res.Resource)
88-
asset, ok := res.Resource.(*GcpAsset)
89-
s.True(ok)
90-
s.Equal(expectedAsset, asset.ExtendedAsset)
91-
s.Equal("cloud-compute", asset.Type)
92-
s.Equal("gcp-compute-instance", asset.SubType)
93-
case <-time.After(time.Second):
94-
s.Fail("Test timed out waiting for resource")
95-
}
87+
res := <-s.resourceCh
88+
s.NotNil(res.Resource)
89+
asset, ok := res.Resource.(*GcpAsset)
90+
s.True(ok)
91+
s.Equal(expectedAsset, asset.ExtendedAsset)
92+
s.Equal("cloud-compute", asset.Type)
93+
s.Equal("gcp-compute-instance", asset.SubType)
9694

95+
wg.Wait()
9796
mockInventoryService.AssertExpectations(s.T())
9897
}
9998

internal/resources/fetching/fetchers/gcp/log_sink_fetcher_test.go

+15-16
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ package fetchers
2020
import (
2121
"context"
2222
"fmt"
23+
"sync"
2324
"testing"
24-
"time"
2525

2626
"cloud.google.com/go/asset/apiv1/assetpb"
2727
"github.com/stretchr/testify/assert"
@@ -58,6 +58,7 @@ func (s *GcpLogSinkFetcherTestSuite) TearDownTest() {
5858

5959
func (s *GcpLogSinkFetcherTestSuite) TestLogSinkFetcher_Fetch_Success() {
6060
ctx := context.Background()
61+
wg := sync.WaitGroup{}
6162
mockInventoryService := &inventory.MockServiceAPI{}
6263
fetcher := NewGcpLogSinkFetcher(ctx, testhelper.NewLogger(s.T()), s.resourceCh, mockInventoryService)
6364

@@ -77,26 +78,24 @@ func (s *GcpLogSinkFetcherTestSuite) TestLogSinkFetcher_Fetch_Success() {
7778
close(ch)
7879
}).Once()
7980

81+
wg.Add(1)
8082
go func() {
83+
defer wg.Done()
8184
err := fetcher.Fetch(ctx, cycle.Metadata{})
8285
s.NoError(err)
8386
}()
8487

85-
select {
86-
case res := <-s.resourceCh:
87-
s.NotNil(res.Resource)
88-
asset, ok := res.Resource.(*GcpLoggingAsset)
89-
s.True(ok)
90-
s.Len(asset.Asset.LogSinks, 1)
91-
s.Equal(expectedAsset.Assets, asset.Asset.LogSinks)
92-
s.Equal(expectedAsset.CloudAccount.AccountId, asset.Asset.CloudAccount.AccountId)
93-
s.Equal(fetching.LoggingIdentity, asset.Type)
94-
s.Equal(fetching.GcpLoggingType, asset.subType)
95-
96-
case <-time.After(time.Second):
97-
s.Fail("Test timed out waiting for resource")
98-
}
99-
88+
res := <-s.resourceCh
89+
s.NotNil(res.Resource)
90+
asset, ok := res.Resource.(*GcpLoggingAsset)
91+
s.True(ok)
92+
s.Len(asset.Asset.LogSinks, 1)
93+
s.Equal(expectedAsset.Assets, asset.Asset.LogSinks)
94+
s.Equal(expectedAsset.CloudAccount.AccountId, asset.Asset.CloudAccount.AccountId)
95+
s.Equal(fetching.LoggingIdentity, asset.Type)
96+
s.Equal(fetching.GcpLoggingType, asset.subType)
97+
98+
wg.Wait()
10099
mockInventoryService.AssertExpectations(s.T())
101100
}
102101

internal/resources/fetching/fetchers/gcp/monitoring_fetcher_test.go

+17-17
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ package fetchers
2020
import (
2121
"context"
2222
"fmt"
23+
"sync"
2324
"testing"
24-
"time"
2525

2626
"cloud.google.com/go/asset/apiv1/assetpb"
2727
"github.com/stretchr/testify/assert"
@@ -60,6 +60,7 @@ func (s *GcpMonitoringFetcherTestSuite) TearDownTest() {
6060

6161
func (s *GcpMonitoringFetcherTestSuite) TestMonitoringFetcher_Fetch_Success() {
6262
ctx := context.Background()
63+
wg := sync.WaitGroup{}
6364
mockInventoryService := &inventory.MockServiceAPI{}
6465
fetcher := NewGcpMonitoringFetcher(ctx, testhelper.NewLogger(s.T()), s.resourceCh, mockInventoryService)
6566
expectedAsset := &inventory.MonitoringAsset{
@@ -82,27 +83,26 @@ func (s *GcpMonitoringFetcherTestSuite) TestMonitoringFetcher_Fetch_Success() {
8283
close(ch)
8384
}).Once()
8485

86+
wg.Add(1)
87+
8588
go func() {
89+
defer wg.Done()
8690
err := fetcher.Fetch(ctx, cycle.Metadata{})
8791
s.NoError(err)
8892
}()
8993

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()
106106
mockInventoryService.AssertExpectations(s.T())
107107
}
108108

internal/resources/fetching/fetchers/gcp/networks_fetcher_test.go

+12-13
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ package fetchers
2020
import (
2121
"context"
2222
"fmt"
23+
"sync"
2324
"testing"
24-
"time"
2525

2626
"cloud.google.com/go/asset/apiv1/assetpb"
2727
"github.com/stretchr/testify/assert"
@@ -58,6 +58,7 @@ func (s *GcpNetworksFetcherTestSuite) TearDownTest() {
5858

5959
func (s *GcpNetworksFetcherTestSuite) TestNetworksFetcher_Fetch_Success() {
6060
ctx := context.Background()
61+
wg := sync.WaitGroup{}
6162
mockInventoryService := &inventory.MockServiceAPI{}
6263
fetcher := NewGcpNetworksFetcher(ctx, testhelper.NewLogger(s.T()), s.resourceCh, mockInventoryService)
6364
expectedAsset := &inventory.ExtendedGcpAsset{
@@ -74,24 +75,22 @@ func (s *GcpNetworksFetcherTestSuite) TestNetworksFetcher_Fetch_Success() {
7475
close(ch)
7576
}).Once()
7677

78+
wg.Add(1)
7779
go func() {
80+
defer wg.Done()
7881
err := fetcher.Fetch(ctx, cycle.Metadata{})
7982
s.NoError(err)
8083
}()
8184

82-
select {
83-
case res := <-s.resourceCh:
84-
s.NotNil(res.Resource)
85-
asset, ok := res.Resource.(*GcpNetworksAsset)
86-
s.True(ok)
87-
s.Equal(expectedAsset, asset.NetworkAsset)
88-
s.Equal(fetching.CloudCompute, asset.Type)
89-
s.Equal("gcp-compute-network", asset.subType)
90-
91-
case <-time.After(time.Second):
92-
s.Fail("Test timed out waiting for resource")
93-
}
85+
res := <-s.resourceCh
86+
s.NotNil(res.Resource)
87+
asset, ok := res.Resource.(*GcpNetworksAsset)
88+
s.True(ok)
89+
s.Equal(expectedAsset, asset.NetworkAsset)
90+
s.Equal(fetching.CloudCompute, asset.Type)
91+
s.Equal("gcp-compute-network", asset.subType)
9492

93+
wg.Wait()
9594
mockInventoryService.AssertExpectations(s.T())
9695
}
9796

internal/resources/fetching/fetchers/gcp/policies_fetcher_test.go

+14-16
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ package fetchers
2020
import (
2121
"context"
2222
"fmt"
23+
"sync"
2324
"testing"
24-
"time"
2525

2626
"cloud.google.com/go/asset/apiv1/assetpb"
2727
"github.com/stretchr/testify/assert"
@@ -60,7 +60,7 @@ func (s *GcpPoliciesFetcherTestSuite) TestPoliciesFetcher_Fetch_Success() {
6060
ctx := context.Background()
6161
mockInventoryService := &inventory.MockServiceAPI{}
6262
fetcher := NewGcpPoliciesFetcher(ctx, testhelper.NewLogger(s.T()), s.resourceCh, mockInventoryService)
63-
63+
wg := sync.WaitGroup{}
6464
expectedAsset := &inventory.ProjectPoliciesAsset{
6565
Policies: []*inventory.ExtendedGcpAsset{
6666
{Asset: &assetpb.Asset{Name: "a1", AssetType: inventory.CrmProjectAssetType}},
@@ -78,25 +78,23 @@ func (s *GcpPoliciesFetcherTestSuite) TestPoliciesFetcher_Fetch_Success() {
7878
close(ch)
7979
}).Once()
8080

81+
wg.Add(1)
8182
go func() {
83+
defer wg.Done()
8284
err := fetcher.Fetch(ctx, cycle.Metadata{})
8385
s.NoError(err)
8486
}()
8587

86-
select {
87-
case res := <-s.resourceCh:
88-
s.NotNil(res.Resource)
89-
asset, ok := res.Resource.(*GcpPoliciesAsset)
90-
s.True(ok)
91-
s.Len(asset.Asset.Policies, 1)
92-
s.Equal(expectedAsset.Policies[0], asset.Asset.Policies[0])
93-
s.Equal(expectedAsset.CloudAccount.AccountId, asset.Asset.CloudAccount.AccountId)
94-
s.Equal(fetching.ProjectManagement, asset.Type)
95-
s.Equal(fetching.GcpPolicies, asset.subType)
96-
case <-time.After(time.Second):
97-
s.Fail("Test timed out waiting for resource")
98-
}
99-
88+
res := <-s.resourceCh
89+
s.NotNil(res.Resource)
90+
asset, ok := res.Resource.(*GcpPoliciesAsset)
91+
s.True(ok)
92+
s.Len(asset.Asset.Policies, 1)
93+
s.Equal(expectedAsset.Policies[0], asset.Asset.Policies[0])
94+
s.Equal(expectedAsset.CloudAccount.AccountId, asset.Asset.CloudAccount.AccountId)
95+
s.Equal(fetching.ProjectManagement, asset.Type)
96+
s.Equal(fetching.GcpPolicies, asset.subType)
97+
wg.Wait()
10098
mockInventoryService.AssertExpectations(s.T())
10199
}
102100

internal/resources/fetching/fetchers/gcp/service_usage_fetcher_test.go

+15-16
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ package fetchers
2020
import (
2121
"context"
2222
"fmt"
23+
"sync"
2324
"testing"
24-
"time"
2525

2626
"cloud.google.com/go/asset/apiv1/assetpb"
2727
"github.com/stretchr/testify/assert"
@@ -59,7 +59,7 @@ func (s *GcpServiceUsageFetcherTestSuite) TestServiceUsageFetcher_Fetch_Success(
5959
ctx := context.Background()
6060
mockInventoryService := &inventory.MockServiceAPI{}
6161
fetcher := NewGcpServiceUsageFetcher(ctx, testhelper.NewLogger(s.T()), s.resourceCh, mockInventoryService)
62-
62+
wg := sync.WaitGroup{}
6363
expectedAsset := &inventory.ProjectAssets{
6464
Assets: []*inventory.ExtendedGcpAsset{
6565
{Asset: &assetpb.Asset{Name: "a1", AssetType: inventory.ServiceUsageAssetType}},
@@ -77,25 +77,24 @@ func (s *GcpServiceUsageFetcherTestSuite) TestServiceUsageFetcher_Fetch_Success(
7777
close(ch)
7878
}).Once()
7979

80+
wg.Add(1)
8081
go func() {
82+
defer wg.Done()
8183
err := fetcher.Fetch(ctx, cycle.Metadata{})
8284
s.NoError(err)
8385
}()
8486

85-
select {
86-
case res := <-s.resourceCh:
87-
s.NotNil(res.Resource)
88-
asset, ok := res.Resource.(*GcpServiceUsageAsset)
89-
s.True(ok)
90-
s.Len(asset.Asset.Services, 1)
91-
s.Equal(inventory.ServiceUsageAssetType, asset.Asset.Services[0].Asset.AssetType)
92-
s.Equal(expectedAsset.CloudAccount.AccountId, asset.Asset.CloudAccount.AccountId)
93-
s.Equal(fetching.MonitoringIdentity, asset.Type)
94-
s.Equal(fetching.GcpServiceUsage, asset.subType)
95-
case <-time.After(time.Second):
96-
s.Fail("Test timed out waiting for resource")
97-
}
98-
87+
res := <-s.resourceCh
88+
s.NotNil(res.Resource)
89+
asset, ok := res.Resource.(*GcpServiceUsageAsset)
90+
s.True(ok)
91+
s.Len(asset.Asset.Services, 1)
92+
s.Equal(inventory.ServiceUsageAssetType, asset.Asset.Services[0].Asset.AssetType)
93+
s.Equal(expectedAsset.CloudAccount.AccountId, asset.Asset.CloudAccount.AccountId)
94+
s.Equal(fetching.MonitoringIdentity, asset.Type)
95+
s.Equal(fetching.GcpServiceUsage, asset.subType)
96+
97+
wg.Wait()
9998
mockInventoryService.AssertExpectations(s.T())
10099
}
101100

0 commit comments

Comments
 (0)