Skip to content
This repository was archived by the owner on Feb 4, 2025. It is now read-only.

Order form is dropping second last names unexpectedly #3113

Merged
merged 21 commits into from
Nov 27, 2024
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
e885fec
Refactor first name and last name detection of customer logic
AnirudhBhat Nov 25, 2024
0266ff2
Add test to verify that proper first name is returned given customer …
AnirudhBhat Nov 25, 2024
8f355b0
Remove unnecessary annotation
AnirudhBhat Nov 25, 2024
6e3f63b
add test to verify proper last name is detected
AnirudhBhat Nov 25, 2024
2b2a46d
add test to verify empty string is returned when customer name is null
AnirudhBhat Nov 25, 2024
6bc6314
add test to verify full string is returned when customer name has no …
AnirudhBhat Nov 25, 2024
27f2158
add test to verify empty string is returned for last name when custom…
AnirudhBhat Nov 25, 2024
bba2b8d
add test to verify empty string is returned for last name when custom…
AnirudhBhat Nov 25, 2024
4ca0bc6
add test to verify proper string is returned for first name when cust…
AnirudhBhat Nov 25, 2024
d76f381
add test to verify proper string is returned for last name when custo…
AnirudhBhat Nov 25, 2024
3b5294e
Refactor logic to handle multiple spaces, leading and trailing spaces…
AnirudhBhat Nov 26, 2024
2276918
Add test to verify leading space in customer name will still give us …
AnirudhBhat Nov 26, 2024
1700a00
Add test to verify trailing space in customer name will still give us…
AnirudhBhat Nov 26, 2024
c4e267a
Add test to verify multiple in between space in customer name will st…
AnirudhBhat Nov 26, 2024
2455c15
Add test to verify multiple in between space in customer name will st…
AnirudhBhat Nov 26, 2024
8f338d2
Comment given, when, then in capitals to maintain consistency in file
AnirudhBhat Nov 26, 2024
e085d0c
Add comment
AnirudhBhat Nov 26, 2024
7b6d579
Fix checkstyle error
AnirudhBhat Nov 26, 2024
651e2b9
Fix checkstyle error
AnirudhBhat Nov 26, 2024
a243e08
Fix checkstyle error
AnirudhBhat Nov 26, 2024
2aca001
Refactor first name and last name extraction logic
AnirudhBhat Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add test to verify that proper first name is returned given customer …
…name
AnirudhBhat committed Nov 25, 2024
commit 0266ff201d82619cdbd2525287dbffde61fb2594
Original file line number Diff line number Diff line change
@@ -273,4 +273,22 @@ class WCCustomerMapperTest {
// THEN
assertThat(result.isPayingCustomer).isEqualTo(false)
}

@Test
@Suppress("LongMethod")
fun `given customer name, then first name is properly assigned`() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

np: in all tests, maybe assert both first and last names, because they kinda related and deducted from one string?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, my reasoning for splitting the test cases is mainly to understand why the test fails in future. There must be only one reason for the failure of tests IMHO. If we combine both, we need to see if the test failed because of logical error in the extraction of first name or last name which could be avoided if the test asserts just one thing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my opinion, the one reason here - "if correct logic used in splitting the string". The current implementation, which consists of two private extensions, should not affect the test's logic. Currently, the test does not validate whether the splitter is functioning correctly; instead, it only checks that the first word is designated as the first name.

// given
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

np: the comments are upper case in the other tests

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done: 8f338d2

val siteId = 23
val site = SiteModel().apply { id = siteId }

val customerDTO = CustomerFromAnalyticsDTO(name = "firstname with a very long last name")

// when
val result = mapper.mapToModel(site, customerDTO)

// then
with(result) {
assertEquals("firstname", firstName)
}
}
}