feat: game lobby service
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user