-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathtrigger_test.go
101 lines (74 loc) · 3.24 KB
/
trigger_test.go
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package htmx
import (
"net/http"
"testing"
)
func TestNewTriggerMixed(t *testing.T) {
trigger := NewTrigger()
if trigger == nil {
t.Error("expected trigger to not be nil")
}
trigger.AddEvent("foo").
AddEventDetailed("bar", "baz").
AddEventDetailed("qux", "quux").
AddEventObject("corge", map[string]any{"grault": "garply", "waldo": "fred", "plugh": "xyzzy", "thud": "wibble"})
expected := `{"bar":"baz","corge":{"grault":"garply","plugh":"xyzzy","thud":"wibble","waldo":"fred"},"foo":"","qux":"quux"}`
if trigger.String() != expected {
t.Errorf("expected trigger to be %v, got %v", expected, trigger.String())
}
}
func TestNewTriggerSingle(t *testing.T) {
trigger := NewTrigger()
if trigger == nil {
t.Error("expected trigger to not be nil")
}
trigger.AddEvent("foo").
AddEvent("bar").
AddEvent("baz")
expected := "foo, bar, baz"
if trigger.String() != expected {
t.Errorf("expected trigger to be %v, got %v", expected, trigger.String())
}
}
func TestNewTriggerMixedNested(t *testing.T) {
trigger := NewTrigger()
if trigger == nil {
t.Error("expected trigger to not be nil")
}
trigger.AddEvent("foo").
AddEventDetailed("bar", "baz").
AddEventDetailed("qux", "quux").
AddEventObject("corge", map[string]any{"grault": "garply", "waldo": "fred", "plugh": "xyzzy", "thud": map[string]any{"foo": "bar", "baz": "qux"}}).AddSuccess("successfully tested", map[string]any{"foo": "bar", "baz": "qux"})
expected := `{"bar":"baz","corge":{"grault":"garply","plugh":"xyzzy","thud":{"baz":"qux","foo":"bar"},"waldo":"fred"},"foo":"","qux":"quux","showMessage":{"baz":"qux","foo":"bar","level":"success","message":"successfully tested"}}`
if trigger.String() != expected {
t.Errorf("expected trigger to be %v, got %v", expected, trigger.String())
}
}
func TestTriggerSuccess(t *testing.T) {
req := &http.Request{}
handler := New().NewHandler(dummyWriter{}, req)
handler.TriggerSuccess("successfully tested", map[string]any{"foo": "bar", "baz": "qux"})
expected := `{"showMessage":{"baz":"qux","foo":"bar","level":"success","message":"successfully tested"}}`
equal(t, expected, handler.response.Get(HXTrigger))
}
func TestTriggerError(t *testing.T) {
req := &http.Request{}
handler := New().NewHandler(dummyWriter{}, req)
handler.TriggerError("successfully tested a fail", map[string]any{"foo": "bar", "baz": "qux"})
expected := `{"showMessage":{"baz":"qux","foo":"bar","level":"error","message":"successfully tested a fail"}}`
equal(t, expected, handler.response.Get(HXTrigger))
}
func TestTriggerInfo(t *testing.T) {
req := &http.Request{}
handler := New().NewHandler(dummyWriter{}, req)
handler.TriggerInfo("successfully tested some info", map[string]any{"foo": "bar", "baz": "qux"})
expected := `{"showMessage":{"baz":"qux","foo":"bar","level":"info","message":"successfully tested some info"}}`
equal(t, expected, handler.response.Get(HXTrigger))
}
func TestTriggerWarning(t *testing.T) {
req := &http.Request{}
handler := New().NewHandler(dummyWriter{}, req)
handler.TriggerWarning("successfully tested a warning", map[string]any{"foo": "bar", "baz": "qux"})
expected := `{"showMessage":{"baz":"qux","foo":"bar","level":"warning","message":"successfully tested a warning"}}`
equal(t, expected, handler.response.Get(HXTrigger))
}