diff --git a/Test/public/convertMeetingMembersToMarkdown.test.ps1 b/Test/public/convertMeetingMembersToMarkdown.test.ps1 index 0937ce8..1f55652 100644 --- a/Test/public/convertMeetingMembersToMarkdown.test.ps1 +++ b/Test/public/convertMeetingMembersToMarkdown.test.ps1 @@ -248,7 +248,7 @@ function Test_ConvertMeetingsMembersToMarkdown_Big_sample{ - "Kevin Kim" - "Laura Lewis" - "Mark Martinez" -- Betasoft (13) +- Betasoft (14) - "Amy Adams (She/Her)" - "Bob Brown" - "Charlie Chen" @@ -256,14 +256,13 @@ function Test_ConvertMeetingsMembersToMarkdown_Big_sample{ - david.davis@betasoft.com - emma.edwards@betasoft.com - george.garcia@betasoft.com + - george.garcia@bookings.betasoft.com - "Iris Ingram" - "Jack Johnson" - "James Jackson" - "Jennifer Jones" - "Kyle Knight" - lisa.lee@betasoft.com -- Bookings (1) - - george.garcia@bookings.betasoft.com - Deltalab (3) - "Alice Anderson" - "Emma Evans, Eric" @@ -272,4 +271,21 @@ function Test_ConvertMeetingsMembersToMarkdown_Big_sample{ Assert-AreEqual -Presented $result -Expected $expected +} + +function Test_ConvertMeetingMembersToMarkdown_SubdomainEmailGroupsByRegisteredDomain { + + # Arrange + $input = "Alice Johnson , Bob Smith " + + # Act + $result = Convert-NotesMeetingMembersToMarkdown -MeetingMembers $input + + # Assert + $expected = @" +- Contoso (2) + - Alice Johnson + - Bob Smith +"@ + Assert-AreEqual -Expected $expected -Presented $result -Comment "Subdomain like emea.contoso.com should group under the registered domain (contoso), not the subdomain" } \ No newline at end of file diff --git a/private/parseMemberEmail.ps1 b/private/parseMemberEmail.ps1 index 059c09f..5594573 100644 --- a/private/parseMemberEmail.ps1 +++ b/private/parseMemberEmail.ps1 @@ -28,8 +28,8 @@ function parseMemberEmail { # Extract domain from email $domain = ($email -split '@')[1] if ($domain) { - # Get company name from domain (first part before any dots) - $company = ($domain -split '\.')[0] + # Get company name from domain (second-to-last segment, i.e. registered domain before TLD) + $company = ($domain -split '\.')[-2] # Capitalize first letter if company has content if ($company.Length -gt 0) { $company = $company.Substring(0, 1).ToUpper() + $company.Substring(1).ToLower() @@ -77,8 +77,8 @@ function parseMemberEmail { # Extract domain from email $domain = ($email -split '@')[1] if ($domain) { - # Get company name from domain (first part before any dots) - $company = ($domain -split '\.')[0] + # Get company name from domain (second-to-last segment, i.e. registered domain before TLD) + $company = ($domain -split '\.')[-2] # Capitalize first letter if company has content if ($company.Length -gt 0) { $company = $company.Substring(0, 1).ToUpper() + $company.Substring(1).ToLower()