2023-02-09 03:57:10 +00:00
|
|
|
package user
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestPermission(t *testing.T) {
|
|
|
|
require.Equal(t, PermissionReadWrite, NewPermission(true, true))
|
|
|
|
require.Equal(t, PermissionRead, NewPermission(true, false))
|
|
|
|
require.Equal(t, PermissionWrite, NewPermission(false, true))
|
|
|
|
require.Equal(t, PermissionDenyAll, NewPermission(false, false))
|
2023-02-12 03:14:09 +00:00
|
|
|
require.True(t, PermissionReadWrite.IsReadWrite())
|
|
|
|
require.True(t, PermissionReadWrite.IsRead())
|
|
|
|
require.True(t, PermissionReadWrite.IsWrite())
|
|
|
|
require.True(t, PermissionRead.IsRead())
|
|
|
|
require.True(t, PermissionWrite.IsWrite())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestParsePermission(t *testing.T) {
|
|
|
|
_, err := ParsePermission("no")
|
|
|
|
require.NotNil(t, err)
|
|
|
|
|
|
|
|
p, err := ParsePermission("read-write")
|
|
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, PermissionReadWrite, p)
|
|
|
|
|
|
|
|
p, err = ParsePermission("rw")
|
|
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, PermissionReadWrite, p)
|
|
|
|
|
|
|
|
p, err = ParsePermission("read-only")
|
|
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, PermissionRead, p)
|
|
|
|
|
|
|
|
p, err = ParsePermission("WRITE")
|
|
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, PermissionWrite, p)
|
|
|
|
|
|
|
|
p, err = ParsePermission("deny-all")
|
|
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, PermissionDenyAll, p)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestAllowedTier(t *testing.T) {
|
|
|
|
require.False(t, AllowedTier(" no"))
|
|
|
|
require.True(t, AllowedTier("yes"))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTierContext(t *testing.T) {
|
|
|
|
tier := &Tier{
|
2023-02-22 03:44:30 +00:00
|
|
|
ID: "ti_abc",
|
|
|
|
Code: "pro",
|
|
|
|
StripeMonthlyPriceID: "price_123",
|
|
|
|
StripeYearlyPriceID: "price_456",
|
2023-02-12 03:14:09 +00:00
|
|
|
}
|
|
|
|
context := tier.Context()
|
|
|
|
require.Equal(t, "ti_abc", context["tier_id"])
|
|
|
|
require.Equal(t, "pro", context["tier_code"])
|
2023-02-22 03:44:30 +00:00
|
|
|
require.Equal(t, "price_123", context["stripe_monthly_price_id"])
|
|
|
|
require.Equal(t, "price_456", context["stripe_yearly_price_id"])
|
|
|
|
|
2023-02-09 03:57:10 +00:00
|
|
|
}
|