mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-12-23 08:56:29 +00:00
820e0ab158
Fully implemented for github remote
95 lines
1.8 KiB
Go
95 lines
1.8 KiB
Go
package session
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/drone/drone/cache"
|
|
"github.com/drone/drone/model"
|
|
"github.com/franela/goblin"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func TestTeamPerm(t *testing.T) {
|
|
g := goblin.Goblin(t)
|
|
|
|
g.Describe("TeamPerm", func() {
|
|
|
|
var c *gin.Context
|
|
g.BeforeEach(func() {
|
|
c = new(gin.Context)
|
|
cache.ToContext(c, cache.Default())
|
|
})
|
|
|
|
g.It("Should set admin to false (user not logged in)", func() {
|
|
p := TeamPerm(c)
|
|
g.Assert(p.Admin).IsFalse("admin should be false")
|
|
})
|
|
g.It("Should set admin to true (user is DRONE_ADMIN)", func() {
|
|
// Set DRONE_ADMIN user
|
|
c.Set("user", fakeUserAdmin)
|
|
|
|
p := TeamPerm(c)
|
|
g.Assert(p.Admin).IsTrue("admin should be false")
|
|
})
|
|
g.It("Should set admin to false (user logged in, not owner of org)", func() {
|
|
// Set fake org
|
|
params := gin.Params{
|
|
gin.Param{
|
|
Key: "team",
|
|
Value: "test_org",
|
|
},
|
|
}
|
|
c.Params = params
|
|
|
|
// Set cache to show user does not Owner/Admin
|
|
cache.Set(c, "perms:octocat:test_org", fakeTeamPerm)
|
|
|
|
// Set User
|
|
c.Set("user", fakeUser)
|
|
|
|
p := TeamPerm(c)
|
|
g.Assert(p.Admin).IsFalse("admin should be false")
|
|
})
|
|
g.It("Should set admin to true (user logged in, owner of org)", func() {
|
|
// Set fake org
|
|
params := gin.Params{
|
|
gin.Param{
|
|
Key: "team",
|
|
Value: "test_org",
|
|
},
|
|
}
|
|
c.Params = params
|
|
|
|
// Set cache to show user is Owner/Admin
|
|
cache.Set(c, "perms:octocat:test_org", fakeTeamPermAdmin)
|
|
|
|
// Set User
|
|
c.Set("user", fakeUser)
|
|
|
|
p := TeamPerm(c)
|
|
g.Assert(p.Admin).IsTrue("admin should be true")
|
|
})
|
|
})
|
|
}
|
|
|
|
var (
|
|
fakeUserAdmin = &model.User{
|
|
Login: "octocatAdmin",
|
|
Token: "cfcd2084",
|
|
Admin: true,
|
|
}
|
|
|
|
fakeUser = &model.User{
|
|
Login: "octocat",
|
|
Token: "cfcd2084",
|
|
Admin: false,
|
|
}
|
|
|
|
fakeTeamPermAdmin = &model.Perm{
|
|
Admin: true,
|
|
}
|
|
|
|
fakeTeamPerm = &model.Perm{
|
|
Admin: false,
|
|
}
|
|
)
|