forked from baron/baron-sso
feat: improve Worksmobile tenant sync handling
This commit is contained in:
@@ -446,6 +446,7 @@ func TestResolveWorksmobileDomainIDUsesEnvFamilyFallbacks(t *testing.T) {
|
||||
t.Setenv("SAMAN_DOMAIN_ID", "1001")
|
||||
t.Setenv("HANMAC_DOMAIN_ID", "1002")
|
||||
t.Setenv("GPDTDC_DOMAIN_ID", "1003")
|
||||
t.Setenv("HALLA_DOMAIN_ID", "1005")
|
||||
t.Setenv("BARONGROUP_DOMAIN_ID", "1004")
|
||||
|
||||
tests := []struct {
|
||||
@@ -468,6 +469,16 @@ func TestResolveWorksmobileDomainIDUsesEnvFamilyFallbacks(t *testing.T) {
|
||||
tenant: domain.Tenant{Slug: "gpdtdc", Name: "총괄기획&기술개발센터"},
|
||||
want: 1003,
|
||||
},
|
||||
{
|
||||
name: "halla",
|
||||
tenant: domain.Tenant{Slug: "halla", Name: "한라산업개발", Domains: []domain.TenantDomain{{Domain: "hallasanup.com"}}},
|
||||
want: 1005,
|
||||
},
|
||||
{
|
||||
name: "hanlla legacy slug",
|
||||
tenant: domain.Tenant{Slug: "hanlla", Name: "한라산업개발"},
|
||||
want: 1005,
|
||||
},
|
||||
{
|
||||
name: "barongroup fallback",
|
||||
tenant: domain.Tenant{Slug: "family-company", Name: "기타 가족사"},
|
||||
@@ -484,6 +495,58 @@ func TestResolveWorksmobileDomainIDUsesEnvFamilyFallbacks(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveWorksmobileAccountDomainIDUsesHallaEmailDomain(t *testing.T) {
|
||||
t.Setenv("HALLA_DOMAIN_ID", "1005")
|
||||
t.Setenv("BARONGROUP_DOMAIN_ID", "1004")
|
||||
tenant := domain.Tenant{
|
||||
Slug: "halla",
|
||||
Name: "한라산업개발",
|
||||
Domains: []domain.TenantDomain{{Domain: "hallasanup.com"}},
|
||||
}
|
||||
|
||||
got, err := ResolveWorksmobileAccountDomainIDFromEmail("user@hallasanup.com", tenant, nil)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(1005), got)
|
||||
}
|
||||
|
||||
func TestWorksmobileDomainIDsFromEnvIncludesHallaBeforeFallback(t *testing.T) {
|
||||
t.Setenv("SAMAN_DOMAIN_ID", "1001")
|
||||
t.Setenv("HANMAC_DOMAIN_ID", "1002")
|
||||
t.Setenv("GPDTDC_DOMAIN_ID", "1003")
|
||||
t.Setenv("HALLA_DOMAIN_ID", "1005")
|
||||
t.Setenv("BARONGROUP_DOMAIN_ID", "1004")
|
||||
|
||||
got := WorksmobileDomainIDsFromEnv()
|
||||
|
||||
require.Equal(t, []int64{1001, 1002, 1003, 1005, 1004}, got)
|
||||
require.Equal(t, "한라산업개발", WorksmobileDomainLabelForID(1005))
|
||||
}
|
||||
|
||||
func TestBuildWorksmobileUserPayloadUsesHallaDomain(t *testing.T) {
|
||||
t.Setenv("HALLA_DOMAIN_ID", "1005")
|
||||
t.Setenv("WORKS_DEFAULT_DOMAIN_HALLA", "hallasanup.com")
|
||||
tenantID := "33333333-3333-3333-3333-333333333333"
|
||||
user := domain.User{
|
||||
ID: "44444444-4444-4444-4444-444444444444",
|
||||
Email: "main@hallasanup.com",
|
||||
Name: "Halla User",
|
||||
TenantID: &tenantID,
|
||||
}
|
||||
tenant := domain.Tenant{
|
||||
ID: tenantID,
|
||||
Slug: "halla",
|
||||
Name: "한라산업개발",
|
||||
Domains: []domain.TenantDomain{{Domain: "hallasanup.com"}},
|
||||
}
|
||||
|
||||
payload, err := BuildWorksmobileUserPayload(user, tenant, nil)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(1005), payload.DomainID)
|
||||
require.Equal(t, "main@hallasanup.com", payload.Email)
|
||||
}
|
||||
|
||||
func TestBuildWorksmobileUserPayloadAddsHanmacEmployeeAlias(t *testing.T) {
|
||||
t.Setenv("HANMAC_DOMAIN_ID", "1002")
|
||||
tenantID := "33333333-3333-3333-3333-333333333333"
|
||||
|
||||
Reference in New Issue
Block a user