@@ -9,6 +9,16 @@ import (
9
9
"github.com/stretchr/testify/assert"
10
10
)
11
11
12
+ func newTestDashboardRequestBuilder (visID , searchID string ) * DashboardRequestBuilder {
13
+ builder := NewDashboardRequestBuilder ().
14
+ WithTitle ("China errors" ).
15
+ WithDescription ("This dashboard shows errors from china" ).
16
+ WithPanelsJson (fmt .Sprintf ("[{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :1,\" type\" :\" visualization\" ,\" id\" :\" %s\" ,\" col\" :1,\" row\" :1},{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :2,\" type\" :\" search\" ,\" id\" :\" %s\" ,\" col\" :7,\" row\" :1,\" columns\" :[\" _source\" ],\" sort\" :[\" @timestamp\" ,\" desc\" ]}]" , visID , searchID )).
17
+ WithOptionsJson ("{\" darkTheme\" :false}" )
18
+
19
+ return builder
20
+ }
21
+
12
22
func Test_DashboardCreateFromSavedSearch (t * testing.T ) {
13
23
client := DefaultTestKibanaClient ()
14
24
@@ -37,11 +47,64 @@ func Test_DashboardCreateFromSavedSearch(t *testing.T) {
37
47
38
48
dashboardApi := client .Dashboard ()
39
49
40
- dashboardRequest , err := NewDashboardRequestBuilder ().
41
- WithTitle ("China errors" ).
42
- WithDescription ("This dashboard shows errors from china" ).
43
- WithPanelsJson (fmt .Sprintf ("[{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :1,\" type\" :\" visualization\" ,\" id\" :\" %s\" ,\" col\" :1,\" row\" :1},{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :2,\" type\" :\" search\" ,\" id\" :\" %s\" ,\" col\" :7,\" row\" :1,\" columns\" :[\" _source\" ],\" sort\" :[\" @timestamp\" ,\" desc\" ]}]" , visualizationResponse .Id , searchResponse .Id )).
44
- WithOptionsJson ("{\" darkTheme\" :false}" ).
50
+ dashboardRequest , err := newTestDashboardRequestBuilder (visualizationResponse .Id , searchResponse .Id ).Build ()
51
+
52
+ assert .Nil (t , err )
53
+
54
+ response , err := dashboardApi .Create (dashboardRequest )
55
+ assert .Nil (t , err )
56
+
57
+ defer dashboardApi .Delete (response .Id )
58
+
59
+ assert .Nil (t , err )
60
+ assert .NotNil (t , response )
61
+ assert .Equal (t , dashboardRequest .Attributes .Title , response .Attributes .Title )
62
+ assert .Equal (t , dashboardRequest .Attributes .PanelsJson , response .Attributes .PanelsJson )
63
+ assert .Equal (t , dashboardRequest .Attributes .OptionsJson , response .Attributes .OptionsJson )
64
+ assert .Equal (t , dashboardRequest .Attributes .UiStateJSON , response .Attributes .UiStateJSON )
65
+ assert .Equal (t , dashboardRequest .Attributes .Version , response .Attributes .Version )
66
+ }
67
+
68
+ func Test_DashboardCreateFromSavedSearchWithReferences (t * testing.T ) {
69
+ client := DefaultTestKibanaClient ()
70
+ if goversion .Compare (client .Config .KibanaVersion , "7.0.0" , "<" ) {
71
+ t .SkipNow ()
72
+ }
73
+
74
+ searchClient := client .Search ()
75
+ searchRequest , _ , err := createSearchRequest (searchClient , client .Config .DefaultIndexId , t )
76
+ assert .Nil (t , err )
77
+ searchResponse , err := searchClient .Create (searchRequest )
78
+ assert .Nil (t , err )
79
+ defer searchClient .Delete (searchResponse .Id )
80
+
81
+ visualizationApi := client .Visualization ()
82
+
83
+ builder := newTestVisualizationRequestBuilder ()
84
+ request , err := builder .
85
+ WithSavedSearchId (searchResponse .Id ).
86
+ Build (client .Config .KibanaVersion )
87
+ assert .Nil (t , err )
88
+
89
+ visualizationResponse , err := visualizationApi .Create (request )
90
+ defer visualizationApi .Delete (visualizationResponse .Id )
91
+
92
+ dashboardApi := client .Dashboard ()
93
+
94
+ dashboardRequest , err := newTestDashboardRequestBuilder (visualizationResponse .Id , searchResponse .Id ).
95
+ WithPanelsJson ("[{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :1,\" panelRefName\" :\" panel_0\" ,\" col\" :1,\" row\" :1},{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :2,\" panelRefName\" :\" panel_1\" ,\" col\" :7,\" row\" :1,\" columns\" :[\" _source\" ],\" sort\" :[\" @timestamp\" ,\" desc\" ]}]" ).
96
+ WithReferences ([]* DashboardReferences {
97
+ {
98
+ Id : visualizationResponse .Id ,
99
+ Name : "panel_0" ,
100
+ Type : DashboardReferencesTypeVisualization ,
101
+ },
102
+ {
103
+ Id : searchResponse .Id ,
104
+ Name : "panel_1" ,
105
+ Type : DashboardReferencesTypeSearch ,
106
+ },
107
+ }).
45
108
Build ()
46
109
47
110
assert .Nil (t , err )
@@ -58,18 +121,20 @@ func Test_DashboardCreateFromSavedSearch(t *testing.T) {
58
121
assert .Equal (t , dashboardRequest .Attributes .OptionsJson , response .Attributes .OptionsJson )
59
122
assert .Equal (t , dashboardRequest .Attributes .UiStateJSON , response .Attributes .UiStateJSON )
60
123
assert .Equal (t , dashboardRequest .Attributes .Version , response .Attributes .Version )
124
+ assert .NotEmpty (t , response .References )
125
+ assert .Equal (t , visualizationResponse .Id , response .References [0 ].Id )
126
+ assert .Equal (t , "panel_0" , response .References [0 ].Name )
127
+ assert .Equal (t , DashboardReferencesTypeVisualization , response .References [0 ].Type )
128
+ assert .Equal (t , searchResponse .Id , response .References [1 ].Id )
129
+ assert .Equal (t , "panel_1" , response .References [1 ].Name )
130
+ assert .Equal (t , DashboardReferencesTypeSearch , response .References [1 ].Type )
61
131
}
62
132
63
133
func Test_DashboardRead (t * testing.T ) {
64
134
client := DefaultTestKibanaClient ()
65
135
dashboardApi := client .Dashboard ()
66
136
67
- request , err := NewDashboardRequestBuilder ().
68
- WithTitle ("China errors" ).
69
- WithDescription ("This dashboard shows errors from china" ).
70
- WithPanelsJson ("[{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :1,\" type\" :\" visualization\" ,\" id\" :\" bc8a1970-175b-11e8-accb-65182aaf9591\" ,\" col\" :1,\" row\" :1},{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :2,\" type\" :\" search\" ,\" id\" :\" aca8b340-175b-11e8-accb-65182aaf9591\" ,\" col\" :7,\" row\" :1,\" columns\" :[\" _source\" ],\" sort\" :[\" @timestamp\" ,\" desc\" ]}]" ).
71
- WithOptionsJson ("{\" darkTheme\" :false}" ).
72
- Build ()
137
+ request , err := newTestDashboardRequestBuilder ("bc8a1970-175b-11e8-accb-65182aaf9591" , "aca8b340-175b-11e8-accb-65182aaf9591" ).Build ()
73
138
74
139
assert .Nil (t , err )
75
140
@@ -112,12 +177,7 @@ func Test_DashboardList(t *testing.T) {
112
177
113
178
dashboardApi := client .Dashboard ()
114
179
115
- request , err := NewDashboardRequestBuilder ().
116
- WithTitle ("China errors" ).
117
- WithDescription ("This dashboard shows errors from china" ).
118
- WithPanelsJson ("[{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :1,\" type\" :\" visualization\" ,\" id\" :\" bc8a1970-175b-11e8-accb-65182aaf9591\" ,\" col\" :1,\" row\" :1},{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :2,\" type\" :\" search\" ,\" id\" :\" aca8b340-175b-11e8-accb-65182aaf9591\" ,\" col\" :7,\" row\" :1,\" columns\" :[\" _source\" ],\" sort\" :[\" @timestamp\" ,\" desc\" ]}]" ).
119
- WithOptionsJson ("{\" darkTheme\" :false}" ).
120
- Build ()
180
+ request , err := newTestDashboardRequestBuilder ("bc8a1970-175b-11e8-accb-65182aaf9591" , "aca8b340-175b-11e8-accb-65182aaf9591" ).Build ()
121
181
122
182
assert .Nil (t , err )
123
183
@@ -135,12 +195,7 @@ func Test_DashboardUpdate(t *testing.T) {
135
195
client := DefaultTestKibanaClient ()
136
196
dashboardApi := client .Dashboard ()
137
197
138
- request , err := NewDashboardRequestBuilder ().
139
- WithTitle ("China errors" ).
140
- WithDescription ("This dashboard shows errors from china" ).
141
- WithPanelsJson ("[{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :1,\" type\" :\" visualization\" ,\" id\" :\" bc8a1970-175b-11e8-accb-65182aaf9591\" ,\" col\" :1,\" row\" :1},{\" size_x\" :6,\" size_y\" :3,\" panelIndex\" :2,\" type\" :\" search\" ,\" id\" :\" aca8b340-175b-11e8-accb-65182aaf9591\" ,\" col\" :7,\" row\" :1,\" columns\" :[\" _source\" ],\" sort\" :[\" @timestamp\" ,\" desc\" ]}]" ).
142
- WithOptionsJson ("{\" darkTheme\" :false}" ).
143
- Build ()
198
+ request , err := newTestDashboardRequestBuilder ("bc8a1970-175b-11e8-accb-65182aaf9591" , "aca8b340-175b-11e8-accb-65182aaf9591" ).Build ()
144
199
145
200
assert .Nil (t , err )
146
201
0 commit comments