@ -8,7 +8,7 @@ import (
"github.com/grafana/grafana/pkg/api/dtos"
"github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/components/simplejson"
m "github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/alerting"
"github.com/grafana/grafana/pkg/services/dashboards"
"github.com/grafana/grafana/pkg/services/provisioning"
@ -25,45 +25,45 @@ import (
func TestDashboardApiEndpoint ( t * testing . T ) {
Convey ( "Given a dashboard with a parent folder which does not have an acl" , t , func ( ) {
fakeDash := m . NewDashboard ( "Child dash" )
fakeDash := models . NewDashboard ( "Child dash" )
fakeDash . Id = 1
fakeDash . FolderId = 1
fakeDash . HasAcl = false
bus . AddHandler ( "test" , func ( query * m . GetDashboardsBySlugQuery ) error {
dashboards := [ ] * m . Dashboard { fakeDash }
bus . AddHandler ( "test" , func ( query * models . GetDashboardsBySlugQuery ) error {
dashboards := [ ] * models . Dashboard { fakeDash }
query . Result = dashboards
return nil
} )
var getDashboardQueries [ ] * m . GetDashboardQuery
var getDashboardQueries [ ] * models . GetDashboardQuery
bus . AddHandler ( "test" , func ( query * m . GetDashboardQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardQuery ) error {
query . Result = fakeDash
getDashboardQueries = append ( getDashboardQueries , query )
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetProvisionedDashboardDataByIdQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetProvisionedDashboardDataByIdQuery ) error {
query . Result = nil
return nil
} )
viewerRole := m . ROLE_VIEWER
editorRole := m . ROLE_EDITOR
viewerRole := models . ROLE_VIEWER
editorRole := models . ROLE_EDITOR
aclMockResp := [ ] * m . DashboardAclInfoDTO {
{ Role : & viewerRole , Permission : m . PERMISSION_VIEW } ,
{ Role : & editorRole , Permission : m . PERMISSION_EDIT } ,
aclMockResp := [ ] * models . DashboardAclInfoDTO {
{ Role : & viewerRole , Permission : models . PERMISSION_VIEW } ,
{ Role : & editorRole , Permission : models . PERMISSION_EDIT } ,
}
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = aclMockResp
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetTeamsByUserQuery ) error {
query . Result = [ ] * m . TeamDTO { }
bus . AddHandler ( "test" , func ( query * models . GetTeamsByUserQuery ) error {
query . Result = [ ] * models . TeamDTO { }
return nil
} )
@ -72,7 +72,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
// 2. user is an org editor
Convey ( "When user is an Org Viewer" , func ( ) {
role := m . ROLE_VIEWER
role := models . ROLE_VIEWER
loggedInUserScenarioWithRole ( "When calling GET on" , "GET" , "/api/dashboards/db/child-dash" , "/api/dashboards/db/:slug" , role , func ( sc * scenarioContext ) {
dash := GetDashboardShouldReturn200 ( sc )
@ -132,7 +132,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "When user is an Org Editor" , func ( ) {
role := m . ROLE_EDITOR
role := models . ROLE_EDITOR
loggedInUserScenarioWithRole ( "When calling GET on" , "GET" , "/api/dashboards/db/child-dash" , "/api/dashboards/db/:slug" , role , func ( sc * scenarioContext ) {
dash := GetDashboardShouldReturn200 ( sc )
@ -193,46 +193,46 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "Given a dashboard with a parent folder which has an acl" , t , func ( ) {
fakeDash := m . NewDashboard ( "Child dash" )
fakeDash := models . NewDashboard ( "Child dash" )
fakeDash . Id = 1
fakeDash . FolderId = 1
fakeDash . HasAcl = true
setting . ViewersCanEdit = false
bus . AddHandler ( "test" , func ( query * m . GetProvisionedDashboardDataByIdQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetProvisionedDashboardDataByIdQuery ) error {
query . Result = nil
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardsBySlugQuery ) error {
dashboards := [ ] * m . Dashboard { fakeDash }
bus . AddHandler ( "test" , func ( query * models . GetDashboardsBySlugQuery ) error {
dashboards := [ ] * models . Dashboard { fakeDash }
query . Result = dashboards
return nil
} )
aclMockResp := [ ] * m . DashboardAclInfoDTO {
aclMockResp := [ ] * models . DashboardAclInfoDTO {
{
DashboardId : 1 ,
Permission : m . PERMISSION_EDIT ,
Permission : models . PERMISSION_EDIT ,
UserId : 200 ,
} ,
}
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = aclMockResp
return nil
} )
var getDashboardQueries [ ] * m . GetDashboardQuery
var getDashboardQueries [ ] * models . GetDashboardQuery
bus . AddHandler ( "test" , func ( query * m . GetDashboardQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardQuery ) error {
query . Result = fakeDash
getDashboardQueries = append ( getDashboardQueries , query )
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetTeamsByUserQuery ) error {
query . Result = [ ] * m . TeamDTO { }
bus . AddHandler ( "test" , func ( query * models . GetTeamsByUserQuery ) error {
query . Result = [ ] * models . TeamDTO { }
return nil
} )
@ -249,7 +249,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
// 6. user is an org editor AND has been granted a view permission
Convey ( "When user is an Org Viewer and has no permissions for this dashboard" , func ( ) {
role := m . ROLE_VIEWER
role := models . ROLE_VIEWER
loggedInUserScenarioWithRole ( "When calling GET on" , "GET" , "/api/dashboards/db/child-dash" , "/api/dashboards/db/:slug" , role , func ( sc * scenarioContext ) {
sc . handlerFunc = hs . GetDashboard
@ -307,7 +307,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "When user is an Org Editor and has no permissions for this dashboard" , func ( ) {
role := m . ROLE_EDITOR
role := models . ROLE_EDITOR
loggedInUserScenarioWithRole ( "When calling GET on" , "GET" , "/api/dashboards/db/child-dash" , "/api/dashboards/db/:slug" , role , func ( sc * scenarioContext ) {
sc . handlerFunc = hs . GetDashboard
@ -365,13 +365,13 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "When user is an Org Viewer but has an edit permission" , func ( ) {
role := m . ROLE_VIEWER
role := models . ROLE_VIEWER
mockResult := [ ] * m . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : m . PERMISSION_EDIT } ,
mockResult := [ ] * models . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : models . PERMISSION_EDIT } ,
}
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = mockResult
return nil
} )
@ -434,14 +434,14 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "When user is an Org Viewer and viewers can edit" , func ( ) {
role := m . ROLE_VIEWER
role := models . ROLE_VIEWER
setting . ViewersCanEdit = true
mockResult := [ ] * m . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : m . PERMISSION_VIEW } ,
mockResult := [ ] * models . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : models . PERMISSION_VIEW } ,
}
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = mockResult
return nil
} )
@ -494,13 +494,13 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "When user is an Org Viewer but has an admin permission" , func ( ) {
role := m . ROLE_VIEWER
role := models . ROLE_VIEWER
mockResult := [ ] * m . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : m . PERMISSION_ADMIN } ,
mockResult := [ ] * models . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : models . PERMISSION_ADMIN } ,
}
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = mockResult
return nil
} )
@ -563,13 +563,13 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "When user is an Org Editor but has a view permission" , func ( ) {
role := m . ROLE_EDITOR
role := models . ROLE_EDITOR
mockResult := [ ] * m . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : m . PERMISSION_VIEW } ,
mockResult := [ ] * models . DashboardAclInfoDTO {
{ OrgId : 1 , DashboardId : 2 , UserId : 1 , Permission : models . PERMISSION_VIEW } ,
}
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = mockResult
return nil
} )
@ -631,28 +631,28 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "Given two dashboards with the same title in different folders" , t , func ( ) {
dashOne := m . NewDashboard ( "dash" )
dashOne := models . NewDashboard ( "dash" )
dashOne . Id = 2
dashOne . FolderId = 1
dashOne . HasAcl = false
dashTwo := m . NewDashboard ( "dash" )
dashTwo := models . NewDashboard ( "dash" )
dashTwo . Id = 4
dashTwo . FolderId = 3
dashTwo . HasAcl = false
bus . AddHandler ( "test" , func ( query * m . GetProvisionedDashboardDataByIdQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetProvisionedDashboardDataByIdQuery ) error {
query . Result = nil
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardsBySlugQuery ) error {
dashboards := [ ] * m . Dashboard { dashOne , dashTwo }
bus . AddHandler ( "test" , func ( query * models . GetDashboardsBySlugQuery ) error {
dashboards := [ ] * models . Dashboard { dashOne , dashTwo }
query . Result = dashboards
return nil
} )
role := m . ROLE_EDITOR
role := models . ROLE_EDITOR
loggedInUserScenarioWithRole ( "When calling DELETE on" , "DELETE" , "/api/dashboards/db/dash" , "/api/dashboards/db/:slug" , role , func ( sc * scenarioContext ) {
CallDeleteDashboardBySlug ( sc )
@ -661,7 +661,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
So ( sc . resp . Code , ShouldEqual , 412 )
result := sc . ToJSON ( )
So ( result . Get ( "status" ) . MustString ( ) , ShouldEqual , "multiple-slugs-exists" )
So ( result . Get ( "message" ) . MustString ( ) , ShouldEqual , m . ErrDashboardsWithSameSlugExists . Error ( ) )
So ( result . Get ( "message" ) . MustString ( ) , ShouldEqual , models . ErrDashboardsWithSameSlugExists . Error ( ) )
} )
} )
} )
@ -671,7 +671,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
// This tests that a valid request returns correct response
Convey ( "Given a correct request for creating a dashboard" , func ( ) {
cmd := m . SaveDashboardCommand {
cmd := models . SaveDashboardCommand {
OrgId : 1 ,
UserId : 5 ,
Dashboard : simplejson . NewFromAny ( map [ string ] interface { } {
@ -684,7 +684,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
}
mock := & dashboards . FakeDashboardService {
SaveDashboardResult : & m . Dashboard {
SaveDashboardResult : & models . Dashboard {
Id : 2 ,
Uid : "uid" ,
Title : "Dash" ,
@ -724,27 +724,27 @@ func TestDashboardApiEndpoint(t *testing.T) {
SaveError error
ExpectedStatusCode int
} {
{ SaveError : m . ErrDashboardNotFound , ExpectedStatusCode : 404 } ,
{ SaveError : m . ErrFolderNotFound , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardWithSameUIDExists , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardWithSameNameInFolderExists , ExpectedStatusCode : 412 } ,
{ SaveError : m . ErrDashboardVersionMismatch , ExpectedStatusCode : 412 } ,
{ SaveError : m . ErrDashboardTitleEmpty , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardFolderCannotHaveParent , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardNotFound , ExpectedStatusCode : 404 } ,
{ SaveError : models . ErrFolderNotFound , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardWithSameUIDExists , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardWithSameNameInFolderExists , ExpectedStatusCode : 412 } ,
{ SaveError : models . ErrDashboardVersionMismatch , ExpectedStatusCode : 412 } ,
{ SaveError : models . ErrDashboardTitleEmpty , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardFolderCannotHaveParent , ExpectedStatusCode : 400 } ,
{ SaveError : alerting . ValidationError { Reason : "Mu" } , ExpectedStatusCode : 422 } ,
{ SaveError : m . ErrDashboardFailedGenerateUniqueUid , ExpectedStatusCode : 500 } ,
{ SaveError : m . ErrDashboardTypeMismatch , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardFolderWithSameNameAsDashboard , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardWithSameNameAsFolder , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardFolderNameExists , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardUpdateAccessDenied , ExpectedStatusCode : 403 } ,
{ SaveError : m . ErrDashboardInvalidUid , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardUidToLong , ExpectedStatusCode : 400 } ,
{ SaveError : m . ErrDashboardCannotSaveProvisionedDashboard , ExpectedStatusCode : 400 } ,
{ SaveError : m . UpdatePluginDashboardError { PluginId : "plug" } , ExpectedStatusCode : 412 } ,
{ SaveError : models . ErrDashboardFailedGenerateUniqueUid , ExpectedStatusCode : 500 } ,
{ SaveError : models . ErrDashboardTypeMismatch , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardFolderWithSameNameAsDashboard , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardWithSameNameAsFolder , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardFolderNameExists , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardUpdateAccessDenied , ExpectedStatusCode : 403 } ,
{ SaveError : models . ErrDashboardInvalidUid , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardUidToLong , ExpectedStatusCode : 400 } ,
{ SaveError : models . ErrDashboardCannotSaveProvisionedDashboard , ExpectedStatusCode : 400 } ,
{ SaveError : models . UpdatePluginDashboardError { PluginId : "plug" } , ExpectedStatusCode : 412 } ,
}
cmd := m . SaveDashboardCommand {
cmd := models . SaveDashboardCommand {
OrgId : 1 ,
Dashboard : simplejson . NewFromAny ( map [ string ] interface { } {
"title" : "" ,
@ -765,19 +765,19 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "Given two dashboards being compared" , t , func ( ) {
mockResult := [ ] * m . DashboardAclInfoDTO { }
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
mockResult := [ ] * models . DashboardAclInfoDTO { }
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = mockResult
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetProvisionedDashboardDataByIdQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetProvisionedDashboardDataByIdQuery ) error {
query . Result = nil
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardVersionQuery ) error {
query . Result = & m . DashboardVersion {
bus . AddHandler ( "test" , func ( query * models . GetDashboardVersionQuery ) error {
query . Result = & models . DashboardVersion {
Data : simplejson . NewFromAny ( map [ string ] interface { } {
"title" : "Dash" + string ( query . DashboardId ) ,
} ) ,
@ -798,7 +798,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
}
Convey ( "when user does not have permission" , func ( ) {
role := m . ROLE_VIEWER
role := models . ROLE_VIEWER
postDiffScenario ( "When calling POST on" , "/api/dashboards/calculate-diff" , "/api/dashboards/calculate-diff" , cmd , role , func ( sc * scenarioContext ) {
CallPostDashboard ( sc )
@ -807,7 +807,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "when user does have permission" , func ( ) {
role := m . ROLE_ADMIN
role := models . ROLE_ADMIN
postDiffScenario ( "When calling POST on" , "/api/dashboards/calculate-diff" , "/api/dashboards/calculate-diff" , cmd , role , func ( sc * scenarioContext ) {
CallPostDashboard ( sc )
@ -817,18 +817,18 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "Given dashboard in folder being restored should restore to folder" , t , func ( ) {
fakeDash := m . NewDashboard ( "Child dash" )
fakeDash := models . NewDashboard ( "Child dash" )
fakeDash . Id = 2
fakeDash . FolderId = 1
fakeDash . HasAcl = false
bus . AddHandler ( "test" , func ( query * m . GetDashboardQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardQuery ) error {
query . Result = fakeDash
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardVersionQuery ) error {
query . Result = & m . DashboardVersion {
bus . AddHandler ( "test" , func ( query * models . GetDashboardVersionQuery ) error {
query . Result = & models . DashboardVersion {
DashboardId : 2 ,
Version : 1 ,
Data : fakeDash . Data ,
@ -837,7 +837,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
mock := & dashboards . FakeDashboardService {
SaveDashboardResult : & m . Dashboard {
SaveDashboardResult : & models . Dashboard {
Id : 2 ,
Uid : "uid" ,
Title : "Dash" ,
@ -861,17 +861,17 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
Convey ( "Given dashboard in general folder being restored should restore to general folder" , t , func ( ) {
fakeDash := m . NewDashboard ( "Child dash" )
fakeDash := models . NewDashboard ( "Child dash" )
fakeDash . Id = 2
fakeDash . HasAcl = false
bus . AddHandler ( "test" , func ( query * m . GetDashboardQuery ) error {
bus . AddHandler ( "test" , func ( query * models . GetDashboardQuery ) error {
query . Result = fakeDash
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardVersionQuery ) error {
query . Result = & m . DashboardVersion {
bus . AddHandler ( "test" , func ( query * models . GetDashboardVersionQuery ) error {
query . Result = & models . DashboardVersion {
DashboardId : 2 ,
Version : 1 ,
Data : fakeDash . Data ,
@ -880,7 +880,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
mock := & dashboards . FakeDashboardService {
SaveDashboardResult : & m . Dashboard {
SaveDashboardResult : & models . Dashboard {
Id : 2 ,
Uid : "uid" ,
Title : "Dash" ,
@ -905,48 +905,48 @@ func TestDashboardApiEndpoint(t *testing.T) {
Convey ( "Given provisioned dashboard" , t , func ( ) {
bus . AddHandler ( "test" , func ( query * m . GetDashboardsBySlugQuery ) error {
query . Result = [ ] * m . Dashboard { { } }
bus . AddHandler ( "test" , func ( query * models . GetDashboardsBySlugQuery ) error {
query . Result = [ ] * models . Dashboard { { } }
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardQuery ) error {
query . Result = & m . Dashboard { Id : 1 , Data : & simplejson . Json { } }
bus . AddHandler ( "test" , func ( query * models . GetDashboardQuery ) error {
query . Result = & models . Dashboard { Id : 1 , Data : & simplejson . Json { } }
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetProvisionedDashboardDataByIdQuery ) error {
query . Result = & m . DashboardProvisioning { ExternalId : "/tmp/grafana/dashboards/test/dashboard1.json" }
bus . AddHandler ( "test" , func ( query * models . GetProvisionedDashboardDataByIdQuery ) error {
query . Result = & models . DashboardProvisioning { ExternalId : "/tmp/grafana/dashboards/test/dashboard1.json" }
return nil
} )
bus . AddHandler ( "test" , func ( query * m . GetDashboardAclInfoListQuery ) error {
query . Result = [ ] * m . DashboardAclInfoDTO {
{ OrgId : TestOrgID , DashboardId : 1 , UserId : TestUserID , Permission : m . PERMISSION_EDIT } ,
bus . AddHandler ( "test" , func ( query * models . GetDashboardAclInfoListQuery ) error {
query . Result = [ ] * models . DashboardAclInfoDTO {
{ OrgId : TestOrgID , DashboardId : 1 , UserId : TestUserID , Permission : models . PERMISSION_EDIT } ,
}
return nil
} )
loggedInUserScenarioWithRole ( "When calling DELETE on" , "DELETE" , "/api/dashboards/db/dash" , "/api/dashboards/db/:slug" , m . ROLE_EDITOR , func ( sc * scenarioContext ) {
loggedInUserScenarioWithRole ( "When calling DELETE on" , "DELETE" , "/api/dashboards/db/dash" , "/api/dashboards/db/:slug" , models . ROLE_EDITOR , func ( sc * scenarioContext ) {
CallDeleteDashboardBySlug ( sc )
Convey ( "Should result in 400" , func ( ) {
So ( sc . resp . Code , ShouldEqual , 400 )
result := sc . ToJSON ( )
So ( result . Get ( "error" ) . MustString ( ) , ShouldEqual , m . ErrDashboardCannotDeleteProvisionedDashboard . Error ( ) )
So ( result . Get ( "error" ) . MustString ( ) , ShouldEqual , models . ErrDashboardCannotDeleteProvisionedDashboard . Error ( ) )
} )
} )
loggedInUserScenarioWithRole ( "When calling DELETE on" , "DELETE" , "/api/dashboards/db/abcdefghi" , "/api/dashboards/db/:uid" , m . ROLE_EDITOR , func ( sc * scenarioContext ) {
loggedInUserScenarioWithRole ( "When calling DELETE on" , "DELETE" , "/api/dashboards/db/abcdefghi" , "/api/dashboards/db/:uid" , models . ROLE_EDITOR , func ( sc * scenarioContext ) {
CallDeleteDashboardByUID ( sc )
Convey ( "Should result in 400" , func ( ) {
So ( sc . resp . Code , ShouldEqual , 400 )
result := sc . ToJSON ( )
So ( result . Get ( "error" ) . MustString ( ) , ShouldEqual , m . ErrDashboardCannotDeleteProvisionedDashboard . Error ( ) )
So ( result . Get ( "error" ) . MustString ( ) , ShouldEqual , models . ErrDashboardCannotDeleteProvisionedDashboard . Error ( ) )
} )
} )
loggedInUserScenarioWithRole ( "When calling GET on" , "GET" , "/api/dashboards/uid/dash" , "/api/dashboards/uid/:uid" , m . ROLE_EDITOR , func ( sc * scenarioContext ) {
loggedInUserScenarioWithRole ( "When calling GET on" , "GET" , "/api/dashboards/uid/dash" , "/api/dashboards/uid/:uid" , models . ROLE_EDITOR , func ( sc * scenarioContext ) {
mock := provisioning . NewProvisioningServiceMock ( )
mock . GetDashboardProvisionerResolvedPathFunc = func ( name string ) string {
return "/tmp/grafana/dashboards"
@ -959,7 +959,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
} )
} )
loggedInUserScenarioWithRole ( "When allowUiUpdates is true and calling GET on" , "GET" , "/api/dashboards/uid/dash" , "/api/dashboards/uid/:uid" , m . ROLE_EDITOR , func ( sc * scenarioContext ) {
loggedInUserScenarioWithRole ( "When allowUiUpdates is true and calling GET on" , "GET" , "/api/dashboards/uid/dash" , "/api/dashboards/uid/:uid" , models . ROLE_EDITOR , func ( sc * scenarioContext ) {
mock := provisioning . NewProvisioningServiceMock ( )
mock . GetDashboardProvisionerResolvedPathFunc = func ( name string ) string {
return "/tmp/grafana/dashboards"
@ -1018,8 +1018,8 @@ func CallGetDashboard(sc *scenarioContext, hs *HTTPServer) {
}
func CallGetDashboardVersion ( sc * scenarioContext ) {
bus . AddHandler ( "test" , func ( query * m . GetDashboardVersionQuery ) error {
query . Result = & m . DashboardVersion { }
bus . AddHandler ( "test" , func ( query * models . GetDashboardVersionQuery ) error {
query . Result = & models . DashboardVersion { }
return nil
} )
@ -1028,8 +1028,8 @@ func CallGetDashboardVersion(sc *scenarioContext) {
}
func CallGetDashboardVersions ( sc * scenarioContext ) {
bus . AddHandler ( "test" , func ( query * m . GetDashboardVersionsQuery ) error {
query . Result = [ ] * m . DashboardVersionDTO { }
bus . AddHandler ( "test" , func ( query * models . GetDashboardVersionsQuery ) error {
query . Result = [ ] * models . DashboardVersionDTO { }
return nil
} )
@ -1038,7 +1038,7 @@ func CallGetDashboardVersions(sc *scenarioContext) {
}
func CallDeleteDashboardBySlug ( sc * scenarioContext ) {
bus . AddHandler ( "test" , func ( cmd * m . DeleteDashboardCommand ) error {
bus . AddHandler ( "test" , func ( cmd * models . DeleteDashboardCommand ) error {
return nil
} )
@ -1047,7 +1047,7 @@ func CallDeleteDashboardBySlug(sc *scenarioContext) {
}
func CallDeleteDashboardByUID ( sc * scenarioContext ) {
bus . AddHandler ( "test" , func ( cmd * m . DeleteDashboardCommand ) error {
bus . AddHandler ( "test" , func ( cmd * models . DeleteDashboardCommand ) error {
return nil
} )
@ -1073,7 +1073,7 @@ func (m mockDashboardProvisioningService) DeleteProvisionedDashboard(dashboardId
panic ( "implement me" )
}
func postDashboardScenario ( desc string , url string , routePattern string , mock * dashboards . FakeDashboardService , cmd m . SaveDashboardCommand , fn scenarioFunc ) {
func postDashboardScenario ( desc string , url string , routePattern string , mock * dashboards . FakeDashboardService , cmd models . SaveDashboardCommand , fn scenarioFunc ) {
Convey ( desc + " " + url , func ( ) {
defer bus . ClearBusHandlers ( )
@ -1084,9 +1084,9 @@ func postDashboardScenario(desc string, url string, routePattern string, mock *d
}
sc := setupScenarioContext ( url )
sc . defaultHandler = Wrap ( func ( c * m . ReqContext ) Response {
sc . defaultHandler = Wrap ( func ( c * models . ReqContext ) Response {
sc . context = c
sc . context . SignedInUser = & m . SignedInUser { OrgId : cmd . OrgId , UserId : cmd . UserId }
sc . context . SignedInUser = & models . SignedInUser { OrgId : cmd . OrgId , UserId : cmd . UserId }
return hs . PostDashboard ( c , cmd )
} )
@ -1110,14 +1110,14 @@ func postDashboardScenario(desc string, url string, routePattern string, mock *d
} )
}
func postDiffScenario ( desc string , url string , routePattern string , cmd dtos . CalculateDiffOptions , role m . RoleType , fn scenarioFunc ) {
func postDiffScenario ( desc string , url string , routePattern string , cmd dtos . CalculateDiffOptions , role models . RoleType , fn scenarioFunc ) {
Convey ( desc + " " + url , func ( ) {
defer bus . ClearBusHandlers ( )
sc := setupScenarioContext ( url )
sc . defaultHandler = Wrap ( func ( c * m . ReqContext ) Response {
sc . defaultHandler = Wrap ( func ( c * models . ReqContext ) Response {
sc . context = c
sc . context . SignedInUser = & m . SignedInUser {
sc . context . SignedInUser = & models . SignedInUser {
OrgId : TestOrgID ,
UserId : TestUserID ,
}
@ -1143,13 +1143,13 @@ func restoreDashboardVersionScenario(desc string, url string, routePattern strin
}
sc := setupScenarioContext ( url )
sc . defaultHandler = Wrap ( func ( c * m . ReqContext ) Response {
sc . defaultHandler = Wrap ( func ( c * models . ReqContext ) Response {
sc . context = c
sc . context . SignedInUser = & m . SignedInUser {
sc . context . SignedInUser = & models . SignedInUser {
OrgId : TestOrgID ,
UserId : TestUserID ,
}
sc . context . OrgRole = m . ROLE_ADMIN
sc . context . OrgRole = models . ROLE_ADMIN
return hs . RestoreDashboardVersion ( c , cmd )
} )
@ -1183,20 +1183,20 @@ func (sc *scenarioContext) ToJSON() *simplejson.Json {
type mockDashboardProvisioningService struct {
}
func ( m mockDashboardProvisioningService ) SaveProvisionedDashboard ( dto * dashboards . SaveDashboardDTO , provisioning * m . DashboardProvisioning ) ( * m . Dashboard , error ) {
func ( m mockDashboardProvisioningService ) SaveProvisionedDashboard ( dto * dashboards . SaveDashboardDTO , provisioning * models . DashboardProvisioning ) ( * models . Dashboard , error ) {
panic ( "implement me" )
}
func ( m mockDashboardProvisioningService ) SaveFolderForProvisionedDashboards ( * dashboards . SaveDashboardDTO ) ( * m . Dashboard , error ) {
func ( m mockDashboardProvisioningService ) SaveFolderForProvisionedDashboards ( * dashboards . SaveDashboardDTO ) ( * models . Dashboard , error ) {
panic ( "implement me" )
}
func ( m mockDashboardProvisioningService ) GetProvisionedDashboardData ( name string ) ( [ ] * m . DashboardProvisioning , error ) {
func ( m mockDashboardProvisioningService ) GetProvisionedDashboardData ( name string ) ( [ ] * models . DashboardProvisioning , error ) {
panic ( "implement me" )
}
func ( mock mockDashboardProvisioningService ) GetProvisionedDashboardDataByDashboardId ( dashboardId int64 ) ( * m . DashboardProvisioning , error ) {
return & m . DashboardProvisioning { } , nil
func ( mock mockDashboardProvisioningService ) GetProvisionedDashboardDataByDashboardId ( dashboardId int64 ) ( * models . DashboardProvisioning , error ) {
return & models . DashboardProvisioning { } , nil
}
func ( m mockDashboardProvisioningService ) UnprovisionDashboard ( dashboardId int64 ) error {