MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / TestUserPermission

Function TestUserPermission

types/account_test.go:60–134  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

58}
59
60func TestUserPermission(t *testing.T) {
61 Convey("nil protect", t, func() {
62 p := (*UserPermission)(nil)
63 So(p.HasReadPermission(), ShouldBeFalse)
64 So(p.HasWritePermission(), ShouldBeFalse)
65 So(p.HasSuperPermission(), ShouldBeFalse)
66 So(p.IsValid(), ShouldBeFalse)
67 _, state := p.HasDisallowedQueryPatterns([]Query{})
68 So(state, ShouldBeTrue)
69 })
70 Convey("has read permission", t, func() {
71 So(UserPermissionFromRole(Void).HasReadPermission(), ShouldBeFalse)
72 So(UserPermissionFromRole(Read).HasReadPermission(), ShouldBeTrue)
73 So(UserPermissionFromRole(Write).HasReadPermission(), ShouldBeFalse)
74 So(UserPermissionFromRole(ReadWrite).HasReadPermission(), ShouldBeTrue)
75 So(UserPermissionFromRole(Admin).HasReadPermission(), ShouldBeTrue)
76 })
77 Convey("has write permission", t, func() {
78 So(UserPermissionFromRole(Void).HasWritePermission(), ShouldBeFalse)
79 So(UserPermissionFromRole(Read).HasWritePermission(), ShouldBeFalse)
80 So(UserPermissionFromRole(Write).HasWritePermission(), ShouldBeTrue)
81 So(UserPermissionFromRole(ReadWrite).HasWritePermission(), ShouldBeTrue)
82 So(UserPermissionFromRole(Admin).HasWritePermission(), ShouldBeTrue)
83 })
84 Convey("has admin permission", t, func() {
85 So(UserPermissionFromRole(Void).HasSuperPermission(), ShouldBeFalse)
86 So(UserPermissionFromRole(Read).HasSuperPermission(), ShouldBeFalse)
87 So(UserPermissionFromRole(Write).HasSuperPermission(), ShouldBeFalse)
88 So(UserPermissionFromRole(ReadWrite).HasSuperPermission(), ShouldBeFalse)
89 So(UserPermissionFromRole(Admin).HasSuperPermission(), ShouldBeTrue)
90 })
91 Convey("is valid", t, func() {
92 So(UserPermissionFromRole(Void).IsValid(), ShouldBeTrue)
93 So(UserPermissionFromRole(Read).IsValid(), ShouldBeTrue)
94 So(UserPermissionFromRole(Write).IsValid(), ShouldBeTrue)
95 So(UserPermissionFromRole(ReadWrite).IsValid(), ShouldBeTrue)
96 So(UserPermissionFromRole(Admin).IsValid(), ShouldBeTrue)
97 So(UserPermissionFromRole(-1).IsValid(), ShouldBeFalse)
98 So(UserPermissionFromRole(Invalid).IsValid(), ShouldBeFalse)
99 })
100 Convey("query patterns", t, func() {
101 // empty patterns limitation
102 _, state := UserPermissionFromRole(Read).HasDisallowedQueryPatterns([]Query{
103 {
104 Pattern: "select 1",
105 },
106 {
107 Pattern: "insert into test values(1)",
108 },
109 })
110 So(state, ShouldBeFalse)
111
112 // test patterns limit
113 up := UserPermissionFromRole(Read)
114 up.Patterns = append(up.Patterns, "select 1")
115 up.Patterns = append(up.Patterns, "select 2")
116 // has patterns more than limit
117 _, state = up.HasDisallowedQueryPatterns([]Query{

Callers

nothing calls this directly

Calls 6

UserPermissionFromRoleFunction · 0.85
HasReadPermissionMethod · 0.80
HasWritePermissionMethod · 0.80
HasSuperPermissionMethod · 0.80
IsValidMethod · 0.80

Tested by

no test coverage detected