Skip to content

Commit 1c88b75

Browse files
committed
use default wasp test prefix
1 parent 62723fe commit 1c88b75

File tree

1 file changed

+93
-107
lines changed

1 file changed

+93
-107
lines changed

wasp/tmpl_generator_test.go

Lines changed: 93 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package wasp
22

33
import (
4+
"os"
5+
"path/filepath"
46
"testing"
57

68
"github.com/stretchr/testify/assert"
@@ -13,7 +15,7 @@ import (
1315
// kubectl -n default get po --output=json | jq .items
1416
// to write tests for real-world cases
1517

16-
func TestGenerateDataPositive(t *testing.T) {
18+
func TestSmokeGenerateDataPositive(t *testing.T) {
1719
tests := []struct {
1820
name string
1921
namespace string
@@ -60,7 +62,6 @@ func TestGenerateDataPositive(t *testing.T) {
6062
includeWorkload: true,
6163
expectedCases: 2,
6264
},
63-
6465
}
6566

6667
for _, tt := range tests {
@@ -75,7 +76,7 @@ func TestGenerateDataPositive(t *testing.T) {
7576

7677
err = generator.Read()
7778
require.NoError(t, err)
78-
79+
7980
testCases, err := generator.GenerateTestCases()
8081
require.NoError(t, err)
8182
assert.Len(t, testCases, tt.expectedCases)
@@ -96,15 +97,12 @@ func TestGenerateDataPositive(t *testing.T) {
9697
}
9798
}
9899

99-
func TestGenerateDataNegative(t *testing.T) {
100+
func TestSmokeGenerateDataNegative(t *testing.T) {
100101
tests := []struct {
101-
name string
102-
namespace string
103-
mockPods *corev1.PodList
104-
mockError error
105-
includeWorkload bool
106-
expectedCases int
107-
expectError bool
102+
name string
103+
namespace string
104+
mockPods *corev1.PodList
105+
mockError error
108106
}{
109107
{
110108
name: "single pod but incorrect instance annotation",
@@ -116,15 +114,12 @@ func TestGenerateDataNegative(t *testing.T) {
116114
Name: "test-pod-1",
117115
Namespace: "test-namespace",
118116
Labels: map[string]string{
119-
"app": "app1",
117+
"app": "app1", // wrong label
120118
},
121119
},
122120
},
123121
},
124122
},
125-
includeWorkload: false,
126-
expectedCases: 0,
127-
expectError: true,
128123
},
129124
}
130125

@@ -135,107 +130,98 @@ func TestGenerateDataNegative(t *testing.T) {
135130
Err: tt.mockError,
136131
}
137132
generator, err := NewLoadTestGenBuilder(mockClient, tt.namespace).
138-
Workload(tt.includeWorkload).Build()
133+
Workload(true).
134+
Build()
139135
require.NoError(t, err)
140136

141137
err = generator.Read()
142138
require.NoError(t, err)
143139

144-
experiments, err := generator.GenerateTableTest()
140+
_, err = generator.GenerateTableTest()
141+
require.Error(t, err)
142+
})
143+
}
144+
}
145+
146+
func TestGenerateFiles(t *testing.T) {
147+
t.Skip("it's fine to fail until the lib is merged because 'replace' directive is needed but can't be merged")
148+
tests := []struct {
149+
name string
150+
includeWorkload bool
151+
expectGunFile bool
152+
}{
153+
{
154+
name: "with workload generation",
155+
includeWorkload: true,
156+
expectGunFile: true,
157+
},
158+
{
159+
name: "without workload generation",
160+
includeWorkload: false,
161+
expectGunFile: false,
162+
},
163+
}
164+
165+
for _, tt := range tests {
166+
t.Run(tt.name, func(t *testing.T) {
167+
mockClient := &MockK8s{
168+
Pods: &corev1.PodList{
169+
Items: []corev1.Pod{
170+
{
171+
ObjectMeta: metav1.ObjectMeta{
172+
Name: "test-pod",
173+
Namespace: "test-namespace",
174+
Labels: map[string]string{
175+
"app": "test-app",
176+
},
177+
},
178+
},
179+
},
180+
},
181+
}
182+
tmpDir, err := os.MkdirTemp("", "chaos-test-*")
183+
require.NoError(t, err)
184+
defer os.RemoveAll(tmpDir)
185+
186+
generator, err := NewLoadTestGenBuilder(mockClient, "test-namespace").
187+
Workload(tt.includeWorkload).
188+
OutputDir(tmpDir).
189+
GoModName("github.com/test/chaos-tests").
190+
Build()
145191
require.NoError(t, err)
146-
assert.Contains(t, experiments, "package main")
147-
assert.Contains(t, experiments, tt.namespace)
148-
assert.Contains(t, experiments, "TestGeneratedLoadChaos")
192+
193+
require.NoError(t, generator.Read())
194+
require.NoError(t, generator.Write())
195+
196+
expectedFiles := []string{"go.mod", "chaos_test.go"}
197+
198+
for _, file := range expectedFiles {
199+
filePath := filepath.Join(tmpDir, file)
200+
_, err := os.Stat(filePath)
201+
assert.NoError(t, err, "file %s should exist", file)
202+
}
203+
204+
// Verify file contents, can be tidied and builded
205+
goModPath := filepath.Join(tmpDir, "go.mod")
206+
goModContent, err := os.ReadFile(goModPath)
207+
require.NoError(t, err)
208+
assert.Contains(t, string(goModContent), "module github.com/test/chaos-tests")
209+
assert.Contains(t, string(goModContent), "go 1.25")
210+
211+
testPath := filepath.Join(tmpDir, "chaos_test.go")
212+
testContent, err := os.ReadFile(testPath)
213+
require.NoError(t, err)
214+
215+
contentStr := string(testContent)
216+
assert.Contains(t, contentStr, "package main")
217+
assert.Contains(t, contentStr, "TestGeneratedLoadChaos")
218+
assert.Contains(t, contentStr, "Fail pod test-app")
219+
assert.Contains(t, contentStr, "Network delay for test-app")
149220

150221
if tt.includeWorkload {
151-
assert.Contains(t, experiments, "wasp.NewGenerator")
152-
assert.Contains(t, experiments, "ExampleGun")
153-
} else {
154-
assert.NotContains(t, experiments, "wasp.NewGenerator")
222+
assert.Contains(t, contentStr, "ExampleGun")
223+
assert.Contains(t, contentStr, "wasp.NewGenerator")
155224
}
156225
})
157226
}
158227
}
159-
160-
// func TestGenerateFiles(t *testing.T) {
161-
// t.Skip("it's fine to fail until the lib is merged because 'replace' directive is needed but can't be merged")
162-
// tests := []struct {
163-
// name string
164-
// includeWorkload bool
165-
// expectGunFile bool
166-
// }{
167-
// {
168-
// name: "with workload generation",
169-
// includeWorkload: true,
170-
// expectGunFile: true,
171-
// },
172-
// {
173-
// name: "without workload generation",
174-
// includeWorkload: false,
175-
// expectGunFile: false,
176-
// },
177-
// }
178-
179-
// for _, tt := range tests {
180-
// t.Run(tt.name, func(t *testing.T) {
181-
// mockClient := &MockK8s{
182-
// Pods: &corev1.PodList{
183-
// Items: []corev1.Pod{
184-
// {
185-
// ObjectMeta: metav1.ObjectMeta{
186-
// Name: "test-pod",
187-
// Namespace: "test-namespace",
188-
// Labels: map[string]string{
189-
// "app": "test-app",
190-
// },
191-
// },
192-
// },
193-
// },
194-
// },
195-
// }
196-
// tmpDir, err := os.MkdirTemp("", "chaos-test-*")
197-
// require.NoError(t, err)
198-
// defer os.RemoveAll(tmpDir)
199-
200-
// generator, err := NewLoadTestGenBuilder(mockClient, "test-namespace").
201-
// Workload(tt.includeWorkload).
202-
// OutputDir(tmpDir).
203-
// GoModName("github.com/test/chaos-tests").
204-
// Build()
205-
// require.NoError(t, err)
206-
207-
// require.NoError(t, generator.Read())
208-
// require.NoError(t, generator.Write())
209-
210-
// expectedFiles := []string{"go.mod", "chaos_test.go"}
211-
212-
// for _, file := range expectedFiles {
213-
// filePath := filepath.Join(tmpDir, file)
214-
// _, err := os.Stat(filePath)
215-
// assert.NoError(t, err, "file %s should exist", file)
216-
// }
217-
218-
// // Verify file contents, can be tidied and builded
219-
// goModPath := filepath.Join(tmpDir, "go.mod")
220-
// goModContent, err := os.ReadFile(goModPath)
221-
// require.NoError(t, err)
222-
// assert.Contains(t, string(goModContent), "module github.com/test/chaos-tests")
223-
// assert.Contains(t, string(goModContent), "go 1.25")
224-
225-
// testPath := filepath.Join(tmpDir, "chaos_test.go")
226-
// testContent, err := os.ReadFile(testPath)
227-
// require.NoError(t, err)
228-
229-
// contentStr := string(testContent)
230-
// assert.Contains(t, contentStr, "package main")
231-
// assert.Contains(t, contentStr, "TestGeneratedLoadChaos")
232-
// assert.Contains(t, contentStr, "Fail pod test-app")
233-
// assert.Contains(t, contentStr, "Network delay for test-app")
234-
235-
// if tt.includeWorkload {
236-
// assert.Contains(t, contentStr, "ExampleGun")
237-
// assert.Contains(t, contentStr, "wasp.NewGenerator")
238-
// }
239-
// })
240-
// }
241-
// }

0 commit comments

Comments
 (0)