@ -6,17 +6,16 @@ import (
"github.com/grafana/grafana/pkg/util"
"github.com/google/go-cmp/cmp"
"github.com/stretchr/testify/require"
"gopkg.in/macaron.v1"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/web"
"github.com/stretchr/testify/require"
)
func TestPatchLibraryElement ( t * testing . T ) {
scenarioWithPanel ( t , "When an admin tries to patch a library panel that does not exist, it should fail" ,
func ( t * testing . T , sc scenarioContext ) {
cmd := patchLibraryElementCommand { Kind : int64 ( models . PanelElement ) }
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : "unknown" } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : "unknown" } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 404 , resp . Status ( ) )
} )
@ -39,7 +38,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 200 , resp . Status ( ) )
var result = validateAndUnMarshalResponse ( t , resp )
@ -91,7 +90,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 200 , resp . Status ( ) )
var result = validateAndUnMarshalResponse ( t , resp )
@ -112,7 +111,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
var result = validateAndUnMarshalResponse ( t , resp )
sc . initialResult . Result . Name = "New Name"
@ -133,7 +132,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
var result = validateAndUnMarshalResponse ( t , resp )
sc . initialResult . Result . UID = cmd . UID
@ -154,7 +153,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 400 , resp . Status ( ) )
} )
@ -167,7 +166,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 400 , resp . Status ( ) )
} )
@ -184,7 +183,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp = sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 400 , resp . Status ( ) )
} )
@ -197,7 +196,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
var result = validateAndUnMarshalResponse ( t , resp )
sc . initialResult . Result . Type = "graph"
@ -224,7 +223,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
var result = validateAndUnMarshalResponse ( t , resp )
sc . initialResult . Result . Type = "text"
@ -249,7 +248,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
Version : 1 ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
var result = validateAndUnMarshalResponse ( t , resp )
sc . initialResult . Result . Type = "graph"
@ -270,7 +269,7 @@ func TestPatchLibraryElement(t *testing.T) {
func ( t * testing . T , sc scenarioContext ) {
cmd := patchLibraryElementCommand { FolderID : - 1 , Version : 1 , Kind : int64 ( models . PanelElement ) }
sc . reqContext . UserId = 2
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
var result = validateAndUnMarshalResponse ( t , resp )
sc . initialResult . Result . Meta . UpdatedBy . ID = int64 ( 2 )
@ -292,7 +291,7 @@ func TestPatchLibraryElement(t *testing.T) {
Version : 1 ,
Kind : int64 ( models . PanelElement ) ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : result . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : result . Result . UID } )
resp = sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 400 , resp . Status ( ) )
} )
@ -308,7 +307,7 @@ func TestPatchLibraryElement(t *testing.T) {
Version : 1 ,
Kind : int64 ( models . PanelElement ) ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : result . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : result . Result . UID } )
resp = sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 400 , resp . Status ( ) )
} )
@ -321,7 +320,7 @@ func TestPatchLibraryElement(t *testing.T) {
Kind : int64 ( models . PanelElement ) ,
}
sc . reqContext . OrgId = 2
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 404 , resp . Status ( ) )
} )
@ -333,7 +332,7 @@ func TestPatchLibraryElement(t *testing.T) {
Version : 1 ,
Kind : int64 ( models . PanelElement ) ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 200 , resp . Status ( ) )
resp = sc . service . patchHandler ( sc . reqContext , cmd )
@ -347,7 +346,7 @@ func TestPatchLibraryElement(t *testing.T) {
Version : 1 ,
Kind : int64 ( models . VariableElement ) ,
}
sc . ctx . Req = macaron . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
sc . ctx . Req = web . SetURLParams ( sc . ctx . Req , map [ string ] string { ":uid" : sc . initialResult . Result . UID } )
resp := sc . service . patchHandler ( sc . reqContext , cmd )
require . Equal ( t , 200 , resp . Status ( ) )
var result = validateAndUnMarshalResponse ( t , resp )