Skip to content

Commit 6d9c9ad

Browse files
committed
Load test fixtures at test execution time
1 parent 26990aa commit 6d9c9ad

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

Diff for: ecscollector/collector_test.go

+25-17
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ package ecscollector
1515

1616
import (
1717
"bytes"
18-
_ "embed"
1918
"flag"
2019
"fmt"
2120
"io"
@@ -33,7 +32,16 @@ import (
3332

3433
// Create a metadata client that will always receive the given fixture API
3534
// responses.
36-
func fixtureClient(taskMetadata, taskStats []byte) (*ecsmetadata.Client, *httptest.Server) {
35+
func fixtureClient(taskMetadataPath, taskStatsPath string) (*ecsmetadata.Client, *httptest.Server, error) {
36+
taskMetadata, err := os.ReadFile(taskMetadataPath)
37+
if err != nil {
38+
return nil, nil, fmt.Errorf("failed to read task metadata fixture: %w", err)
39+
}
40+
taskStats, err := os.ReadFile(taskStatsPath)
41+
if err != nil {
42+
return nil, nil, fmt.Errorf("failed to read task stats fixture: %w", err)
43+
}
44+
3745
mux := http.NewServeMux()
3846
mux.HandleFunc("GET /task", func(w http.ResponseWriter, r *http.Request) {
3947
w.Header().Add("content-type", "application/json")
@@ -45,7 +53,7 @@ func fixtureClient(taskMetadata, taskStats []byte) (*ecsmetadata.Client, *httpte
4553
})
4654

4755
server := httptest.NewServer(mux)
48-
return ecsmetadata.NewClient(server.URL), server
56+
return ecsmetadata.NewClient(server.URL), server, nil
4957
}
5058

5159
// Renders ecs_exporter metrics from the given metadata client to the prometheus
@@ -89,20 +97,14 @@ func assertSnapshot(t *testing.T, path string, actual []byte) {
8997
}
9098
}
9199

92-
//go:embed testdata/fixtures/fargate_task_metadata.json
93-
var fargateTaskMetadata []byte
94-
95-
//go:embed testdata/fixtures/fargate_task_stats.json
96-
var fargateTaskStats []byte
97-
98-
//go:embed testdata/fixtures/ec2_task_metadata.json
99-
var ec2TaskMetadata []byte
100-
101-
//go:embed testdata/fixtures/ec2_task_stats.json
102-
var ec2TaskStats []byte
103-
104100
func TestFargateMetrics(t *testing.T) {
105-
metadataClient, metadataServer := fixtureClient(fargateTaskMetadata, fargateTaskStats)
101+
metadataClient, metadataServer, err := fixtureClient(
102+
"testdata/fixtures/fargate_task_metadata.json",
103+
"testdata/fixtures/fargate_task_stats.json",
104+
)
105+
if err != nil {
106+
t.Fatalf("failed to load test fixtures: %v", err)
107+
}
106108
defer metadataServer.Close()
107109
metrics, err := renderMetrics(metadataClient)
108110
if err != nil {
@@ -112,7 +114,13 @@ func TestFargateMetrics(t *testing.T) {
112114
}
113115

114116
func TestEc2Metrics(t *testing.T) {
115-
metadataClient, metadataServer := fixtureClient(ec2TaskMetadata, ec2TaskStats)
117+
metadataClient, metadataServer, err := fixtureClient(
118+
"testdata/fixtures/ec2_task_metadata.json",
119+
"testdata/fixtures/ec2_task_stats.json",
120+
)
121+
if err != nil {
122+
t.Fatalf("failed to load test fixtures: %v", err)
123+
}
116124
defer metadataServer.Close()
117125
metrics, err := renderMetrics(metadataClient)
118126
if err != nil {

0 commit comments

Comments
 (0)