-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Expand file tree
/
Copy pathhtml_test.go
More file actions
62 lines (54 loc) · 2.03 KB
/
html_test.go
File metadata and controls
62 lines (54 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package extensions
import (
"testing"
"github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestViewerHTMLTemplateIsRenderable(t *testing.T) {
// This test ensures the viewer.html template can be parsed by Go's template engine.
// It catches issues like unescaped {{ }} sequences in comments or other content
// that would cause the template to fail to parse.
testData := []byte(`[{"name":"test","result":"passed"}]`)
suiteName := "test-suite"
html, err := extensiontests.RenderResultsHTML(testData, suiteName)
require.NoError(t, err, "viewer.html template should be parseable")
assert.Contains(t, string(html), "test-suite", "rendered HTML should contain suite name")
assert.Contains(t, string(html), `"name":"test"`, "rendered HTML should contain test data")
}
func TestToHTMLModes(t *testing.T) {
// Test that both HTML output modes work correctly
results := ExtensionTestResults{
&ExtensionTestResult{
ExtensionTestResult: &extensiontests.ExtensionTestResult{
Name: "passing-test",
Result: extensiontests.ResultPassed,
Output: "some output",
},
},
&ExtensionTestResult{
ExtensionTestResult: &extensiontests.ExtensionTestResult{
Name: "failing-test",
Result: extensiontests.ResultFailed,
Output: "failure output",
Error: "error message",
},
},
}
t.Run("summary mode", func(t *testing.T) {
html, err := results.ToHTML("test-suite", HTMLOutputSummary)
require.NoError(t, err)
assert.NotEmpty(t, html)
// Summary mode should still contain the test names
assert.Contains(t, string(html), "passing-test")
assert.Contains(t, string(html), "failing-test")
})
t.Run("everything mode", func(t *testing.T) {
html, err := results.ToHTML("test-suite", HTMLOutputEverything)
require.NoError(t, err)
assert.NotEmpty(t, html)
// Everything mode should contain all output
assert.Contains(t, string(html), "some output")
assert.Contains(t, string(html), "failure output")
})
}