59 lines
1.9 KiB
Go
59 lines
1.9 KiB
Go
package userstore
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"galaxy/user/internal/domain/policy"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDeriveEligibilityMarkerValuesCollapsesUnderPermanentBlock(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
activeCodes := map[policy.SanctionCode]struct{}{
|
|
policy.SanctionCodePermanentBlock: {},
|
|
}
|
|
|
|
values := deriveEligibilityMarkerValues(true, activeCodes)
|
|
require.False(t, values[policy.EligibilityMarkerCanLogin])
|
|
require.False(t, values[policy.EligibilityMarkerCanCreatePrivateGame])
|
|
require.False(t, values[policy.EligibilityMarkerCanManagePrivateGame])
|
|
require.False(t, values[policy.EligibilityMarkerCanJoinGame])
|
|
require.False(t, values[policy.EligibilityMarkerCanUpdateProfile])
|
|
}
|
|
|
|
func TestDeriveEligibilityMarkerValuesPermanentBlockDominatesOtherSanctions(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
activeCodes := map[policy.SanctionCode]struct{}{
|
|
policy.SanctionCodePermanentBlock: {},
|
|
policy.SanctionCodeLoginBlock: {},
|
|
policy.SanctionCodeGameJoinBlock: {},
|
|
}
|
|
|
|
values := deriveEligibilityMarkerValues(false, activeCodes)
|
|
for marker, value := range values {
|
|
require.Falsef(t, value, "marker %q must be false under permanent_block", marker)
|
|
}
|
|
}
|
|
|
|
func TestDeriveEligibilityMarkerValuesFreeUserWithoutPermanentBlock(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
values := deriveEligibilityMarkerValues(false, map[policy.SanctionCode]struct{}{})
|
|
|
|
require.True(t, values[policy.EligibilityMarkerCanLogin])
|
|
require.False(t, values[policy.EligibilityMarkerCanCreatePrivateGame])
|
|
require.False(t, values[policy.EligibilityMarkerCanManagePrivateGame])
|
|
require.True(t, values[policy.EligibilityMarkerCanJoinGame])
|
|
require.True(t, values[policy.EligibilityMarkerCanUpdateProfile])
|
|
}
|
|
|
|
func TestKnownCatalogsIncludeStage22Codes(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
require.Contains(t, knownSanctionCodes, policy.SanctionCodePermanentBlock)
|
|
require.Contains(t, knownLimitCodes, policy.LimitCodeMaxRegisteredRaceNames)
|
|
}
|