@@ -2,22 +2,31 @@ import { describe, expect, test } from "bun:test"
22import { compareRole , type ProjectRoleName } from "./permissions"
33
44describe ( "compareRole" , ( ) => {
5- const roles : ProjectRoleName [ ] = [ "viewer" , "developer" , "owner" ]
5+ const roles : ProjectRoleName [ ] = [ "viewer" , "manager" , " developer", "owner" ]
66
77 test ( "owner satisfies all minimums" , ( ) => {
88 for ( const min of roles ) {
99 expect ( compareRole ( "owner" , min ) ) . toBe ( true )
1010 }
1111 } )
1212
13- test ( "developer satisfies developer and viewer, not owner" , ( ) => {
13+ test ( "developer satisfies developer, manager, and viewer, not owner" , ( ) => {
1414 expect ( compareRole ( "developer" , "viewer" ) ) . toBe ( true )
15+ expect ( compareRole ( "developer" , "manager" ) ) . toBe ( true )
1516 expect ( compareRole ( "developer" , "developer" ) ) . toBe ( true )
1617 expect ( compareRole ( "developer" , "owner" ) ) . toBe ( false )
1718 } )
1819
20+ test ( "manager satisfies manager and viewer, not developer or owner" , ( ) => {
21+ expect ( compareRole ( "manager" , "viewer" ) ) . toBe ( true )
22+ expect ( compareRole ( "manager" , "manager" ) ) . toBe ( true )
23+ expect ( compareRole ( "manager" , "developer" ) ) . toBe ( false )
24+ expect ( compareRole ( "manager" , "owner" ) ) . toBe ( false )
25+ } )
26+
1927 test ( "viewer satisfies only viewer" , ( ) => {
2028 expect ( compareRole ( "viewer" , "viewer" ) ) . toBe ( true )
29+ expect ( compareRole ( "viewer" , "manager" ) ) . toBe ( false )
2130 expect ( compareRole ( "viewer" , "developer" ) ) . toBe ( false )
2231 expect ( compareRole ( "viewer" , "owner" ) ) . toBe ( false )
2332 } )
0 commit comments