mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
| package models
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/grafana/grafana/pkg/components/simplejson"
 | |
| 	"github.com/grafana/grafana/pkg/setting"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| func TestGetDashboardUrl(t *testing.T) {
 | |
| 	origAppURL := setting.AppUrl
 | |
| 	t.Cleanup(func() { setting.AppUrl = origAppURL })
 | |
| 
 | |
| 	setting.AppUrl = ""
 | |
| 	url := GetDashboardUrl("uid", "my-dashboard")
 | |
| 	assert.Equal(t, "/d/uid/my-dashboard", url)
 | |
| }
 | |
| 
 | |
| func TestGetFullDashboardUrl(t *testing.T) {
 | |
| 	origAppURL := setting.AppUrl
 | |
| 	t.Cleanup(func() { setting.AppUrl = origAppURL })
 | |
| 
 | |
| 	setting.AppUrl = "http://grafana.local/"
 | |
| 	url := GetFullDashboardUrl("uid", "my-dashboard")
 | |
| 	assert.Equal(t, "http://grafana.local/d/uid/my-dashboard", url)
 | |
| }
 | |
| 
 | |
| func TestDashboard_UpdateSlug(t *testing.T) {
 | |
| 	dashboard := NewDashboard("Grafana Play Home")
 | |
| 	assert.Equal(t, "grafana-play-home", dashboard.Slug)
 | |
| 
 | |
| 	dashboard.UpdateSlug()
 | |
| 	assert.Equal(t, "grafana-play-home", dashboard.Slug)
 | |
| }
 | |
| 
 | |
| func TestNewDashboardFromJson(t *testing.T) {
 | |
| 	json := simplejson.New()
 | |
| 	json.Set("title", "test dash")
 | |
| 	json.Set("tags", "")
 | |
| 
 | |
| 	dash := NewDashboardFromJson(json)
 | |
| 	assert.Equal(t, "test dash", dash.Title)
 | |
| 	require.Empty(t, dash.GetTags())
 | |
| }
 | |
| 
 | |
| func TestSaveDashboardCommand_GetDashboardModel(t *testing.T) {
 | |
| 	t.Run("should set IsFolder", func(t *testing.T) {
 | |
| 		json := simplejson.New()
 | |
| 		json.Set("title", "test dash")
 | |
| 
 | |
| 		cmd := &SaveDashboardCommand{Dashboard: json, IsFolder: true}
 | |
| 		dash := cmd.GetDashboardModel()
 | |
| 
 | |
| 		assert.Equal(t, "test dash", dash.Title)
 | |
| 		assert.True(t, dash.IsFolder)
 | |
| 	})
 | |
| 
 | |
| 	t.Run("should set FolderId", func(t *testing.T) {
 | |
| 		json := simplejson.New()
 | |
| 		json.Set("title", "test dash")
 | |
| 
 | |
| 		cmd := &SaveDashboardCommand{Dashboard: json, FolderId: 1}
 | |
| 		dash := cmd.GetDashboardModel()
 | |
| 
 | |
| 		assert.Equal(t, int64(1), dash.FolderId)
 | |
| 	})
 | |
| }
 | |
| 
 | |
| func TestSlugifyTitle(t *testing.T) {
 | |
| 	testCases := map[string]string{
 | |
| 		"Grafana Play Home": "grafana-play-home",
 | |
| 		"snöräv-över-ån":    "snorav-over-an",
 | |
| 		"漢字":                "han-zi",      // Hanzi for hanzi
 | |
| 		"🇦🇶":                "8J-HpvCfh7Y", // flag of Antarctica-emoji, using fallback
 | |
| 		"𒆠":                 "8JKGoA",      // cuneiform Ki, using fallback
 | |
| 	}
 | |
| 
 | |
| 	for input, expected := range testCases {
 | |
| 		t.Run(input, func(t *testing.T) {
 | |
| 			slug := SlugifyTitle(input)
 | |
| 			assert.Equal(t, expected, slug)
 | |
| 		})
 | |
| 	}
 | |
| }
 |