github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/pkg/dashboards/dashboard_test.go (about) 1 /* 2 Copyright 2023. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package dashboards 18 19 import ( 20 "os" 21 "strings" 22 "testing" 23 24 "github.com/siglens/siglens/pkg/config" 25 "github.com/stretchr/testify/assert" 26 ) 27 28 func Test_dashboard_storage_methods(t *testing.T) { 29 30 config.InitializeDefaultConfig() 31 32 _ = InitDashboards() 33 34 _, err := createDashboard("dashboard-1", 0) 35 assert.Nil(t, err) 36 37 _, err = createDashboard("dashboard-2", 0) 38 assert.Nil(t, err) 39 40 dIds, err := getAllDashboardIds(0) 41 expected := []string{} 42 43 for id := range dIds { 44 expected = append(expected, id) 45 } 46 47 assert.Nil(t, err) 48 assert.Equal(t, len(expected), len(dIds)) 49 50 for id := range dIds { 51 assert.Contains(t, expected, id) 52 } 53 54 eDashboardDetails := make(map[string]interface{}) 55 56 eDashboardDetails["description"] = "Dashboard type" 57 eDashboardDetails["note"] = "mydashboard" 58 dashboardId := expected[0] 59 dashboardName := "upd-dashboard-1" 60 61 err = updateDashboard(dashboardId, dashboardName, eDashboardDetails, 0) 62 assert.Nil(t, err) 63 64 aDashBoardDetails, err := getDashboard(expected[0]) 65 66 assert.Nil(t, err) 67 assert.Equal(t, eDashboardDetails["description"], aDashBoardDetails["description"]) 68 assert.Equal(t, eDashboardDetails["note"], aDashBoardDetails["note"]) 69 70 // Test toggleFavorite with non-existing dashboard 71 _, err = toggleFavorite("non-existing-id") 72 assert.NotNil(t, err) 73 74 // Test isDashboardFavorite with non-existing dashboard 75 _, err = isDashboardFavorite("non-existing-id") 76 assert.NotNil(t, err) 77 78 isFavorite, err := toggleFavorite(expected[0]) 79 assert.Nil(t, err) 80 assert.True(t, isFavorite) 81 82 // Test isDashboardFavorite 83 isFavorite, err = isDashboardFavorite(expected[0]) 84 assert.Nil(t, err) 85 assert.True(t, isFavorite) 86 87 // Test isDashboardFavorite for non-favorite dashboard 88 isFavorite, err = isDashboardFavorite(expected[1]) 89 assert.Nil(t, err) 90 assert.False(t, isFavorite) 91 92 // Test getAllFavoriteDashboardIds 93 favoriteDashboards, err := getAllFavoriteDashboardIds(0) 94 assert.Nil(t, err) 95 assert.Equal(t, 1, len(favoriteDashboards)) 96 assert.Contains(t, favoriteDashboards, expected[0]) 97 98 // Toggle favorite off 99 isFavorite, err = toggleFavorite(expected[0]) 100 assert.Nil(t, err) 101 assert.False(t, isFavorite) 102 103 // Test isDashboardFavorite 104 isFavorite, err = isDashboardFavorite(expected[0]) 105 assert.Nil(t, err) 106 assert.False(t, isFavorite) 107 108 // Test getAllFavoriteDashboardIds 109 favoriteDashboards, err = getAllFavoriteDashboardIds(0) 110 assert.Nil(t, err) 111 assert.Equal(t, 0, len(favoriteDashboards)) 112 113 // Test toggleFavorite with multiple dashboards 114 isFavorite, err = toggleFavorite(expected[0]) 115 assert.Nil(t, err) 116 assert.True(t, isFavorite) 117 118 isFavorite, err = toggleFavorite(expected[1]) 119 assert.Nil(t, err) 120 assert.True(t, isFavorite) 121 122 // Test getAllFavoriteDashboardIds with multiple favorite dashboards 123 favoriteDashboards, err = getAllFavoriteDashboardIds(0) 124 assert.Nil(t, err) 125 assert.Equal(t, 2, len(favoriteDashboards)) 126 assert.Contains(t, favoriteDashboards, expected[0]) 127 assert.Contains(t, favoriteDashboards, expected[1]) 128 129 err = deleteDashboard(expected[0], 0) 130 assert.Nil(t, err) 131 132 dIds, err = getAllDashboardIds(0) 133 assert.Nil(t, err) 134 assert.Equal(t, len(expected)-1, len(dIds)) 135 136 // Delete the files created in the test 137 var sb strings.Builder 138 sb.WriteString(config.GetDataPath() + "querynodes/" + config.GetHostID() + "/dashboards") 139 baseDir := sb.String() 140 err = os.RemoveAll(baseDir) 141 assert.Nil(t, err) 142 } 143 144 /* 145 func Test_dashboard_storage_methods_multiple_orgs(t *testing.T) { 146 config.InitializeDefaultConfig() 147 _ = InitDashboards() 148 149 _, err := createDashboard("new-dashboard-1", 0) 150 assert.Nil(t, err) 151 152 _, err = createDashboard("new-dashboard-1", 1) 153 assert.Nil(t, err) 154 155 dIds, err := getAllDashboardIds(0) 156 expected := []string{} 157 158 for id := range dIds { 159 expected = append(expected, id) 160 } 161 162 assert.Nil(t, err) 163 assert.Equal(t, len(expected), len(dIds)) 164 165 for id := range dIds { 166 assert.Contains(t, expected, id) 167 } 168 169 eDashboardDetails := make(map[string]interface{}) 170 171 eDashboardDetails["description"] = "Dashboard type" 172 eDashboardDetails["note"] = "mydashboard" 173 dashboardId := expected[0] 174 dashboardName := "updated-dashboard-1" 175 176 err = updateDashboard(dashboardId, dashboardName, eDashboardDetails, 0) 177 assert.Nil(t, err) 178 179 aDashBoardDetails, err := getDashboard(expected[0]) 180 181 assert.Nil(t, err) 182 assert.Equal(t, eDashboardDetails["description"], aDashBoardDetails["description"]) 183 assert.Equal(t, eDashboardDetails["note"], aDashBoardDetails["note"]) 184 185 err = deleteDashboard(expected[0], 0) 186 assert.Nil(t, err) 187 188 dIds, err = getAllDashboardIds(0) 189 assert.Nil(t, err) 190 assert.Equal(t, len(expected)-1, len(dIds)) 191 192 dIds, err = getAllDashboardIds(1) 193 expected = []string{} 194 195 for id := range dIds { 196 expected = append(expected, id) 197 } 198 199 assert.Nil(t, err) 200 assert.Equal(t, len(expected), len(dIds)) 201 202 for id := range dIds { 203 assert.Contains(t, expected, id) 204 } 205 206 dashboardId = expected[0] 207 dashboardName = "updated-dashboard" 208 err = updateDashboard(dashboardId, dashboardName, eDashboardDetails, 1) 209 assert.Nil(t, err) 210 211 aDashBoardDetails, err = getDashboard(expected[0]) 212 213 assert.Nil(t, err) 214 assert.Equal(t, eDashboardDetails["description"], aDashBoardDetails["description"]) 215 assert.Equal(t, eDashboardDetails["note"], aDashBoardDetails["note"]) 216 217 err = deleteDashboard(expected[0], 1) 218 assert.Nil(t, err) 219 220 dIds, err = getAllDashboardIds(1) 221 assert.Nil(t, err) 222 assert.Equal(t, len(expected)-1, len(dIds)) 223 224 // Delete the files created in the test 225 var sb strings.Builder 226 sb.WriteString(config.GetDataPath() + "querynodes/" + config.GetHostname() + "/dashboards") 227 baseDir := sb.String() 228 err = os.RemoveAll(baseDir) 229 assert.Nil(t, err) 230 } 231 */