|
|
@ -90,7 +90,7 @@ class OnboardingCompanyChecklistServiceTest { |
|
|
@Test |
|
|
@Test |
|
|
void createCompanyChecklistItem_shouldPersistNormalizedItemAndStableHash() { |
|
|
void createCompanyChecklistItem_shouldPersistNormalizedItemAndStableHash() { |
|
|
stubCompanyOwner(); |
|
|
stubCompanyOwner(); |
|
|
when(checklistItemRepository.findAll()).thenReturn(List.of()); |
|
|
when(checklistItemRepository.findCompanyItemsForUpdate(COMPANY_ID)).thenReturn(List.of()); |
|
|
ArgumentCaptor<OnboardingChecklistItem> captor = |
|
|
ArgumentCaptor<OnboardingChecklistItem> captor = |
|
|
ArgumentCaptor.forClass(OnboardingChecklistItem.class); |
|
|
ArgumentCaptor.forClass(OnboardingChecklistItem.class); |
|
|
when(checklistItemRepository.saveAndFlush(any(OnboardingChecklistItem.class))) |
|
|
when(checklistItemRepository.saveAndFlush(any(OnboardingChecklistItem.class))) |
|
|
@ -125,7 +125,7 @@ class OnboardingCompanyChecklistServiceTest { |
|
|
void createCompanyChecklistItem_idempotentReplay_shouldReturnOriginalWithoutSecondSave() { |
|
|
void createCompanyChecklistItem_idempotentReplay_shouldReturnOriginalWithoutSecondSave() { |
|
|
stubCompanyOwner(); |
|
|
stubCompanyOwner(); |
|
|
AtomicReference<OnboardingChecklistItem> stored = new AtomicReference<>(); |
|
|
AtomicReference<OnboardingChecklistItem> stored = new AtomicReference<>(); |
|
|
when(checklistItemRepository.findAll()).thenAnswer(invocation -> stored.get() == null |
|
|
when(checklistItemRepository.findCompanyItemsForUpdate(COMPANY_ID)).thenAnswer(invocation -> stored.get() == null |
|
|
? List.of() : List.of(stored.get())); |
|
|
? List.of() : List.of(stored.get())); |
|
|
when(checklistItemRepository.saveAndFlush(any(OnboardingChecklistItem.class))) |
|
|
when(checklistItemRepository.saveAndFlush(any(OnboardingChecklistItem.class))) |
|
|
.thenAnswer(invocation -> { |
|
|
.thenAnswer(invocation -> { |
|
|
@ -154,7 +154,7 @@ class OnboardingCompanyChecklistServiceTest { |
|
|
OnboardingChecklistItem existing = item( |
|
|
OnboardingChecklistItem existing = item( |
|
|
31L, COMPANY_ID, "existing", "ADMIN", 200, true, 0L, "same-key"); |
|
|
31L, COMPANY_ID, "existing", "ADMIN", 200, true, 0L, "same-key"); |
|
|
existing.setRequestHash("a".repeat(64)); |
|
|
existing.setRequestHash("a".repeat(64)); |
|
|
when(checklistItemRepository.findAll()).thenReturn(List.of(existing)); |
|
|
when(checklistItemRepository.findCompanyItemsForUpdate(COMPANY_ID)).thenReturn(List.of(existing)); |
|
|
|
|
|
|
|
|
assertThatThrownBy(() -> service.createCompanyChecklistItem( |
|
|
assertThatThrownBy(() -> service.createCompanyChecklistItem( |
|
|
COMPANY_USER_ID, |
|
|
COMPANY_USER_ID, |
|
|
@ -173,7 +173,7 @@ class OnboardingCompanyChecklistServiceTest { |
|
|
existing.add(item((long) index + 1, COMPANY_ID, "item-" + index, |
|
|
existing.add(item((long) index + 1, COMPANY_ID, "item-" + index, |
|
|
"OTHER", index, true, 0L, null)); |
|
|
"OTHER", index, true, 0L, null)); |
|
|
} |
|
|
} |
|
|
when(checklistItemRepository.findAll()).thenReturn(existing); |
|
|
when(checklistItemRepository.findCompanyItemsForUpdate(COMPANY_ID)).thenReturn(existing); |
|
|
|
|
|
|
|
|
assertThatThrownBy(() -> service.createCompanyChecklistItem( |
|
|
assertThatThrownBy(() -> service.createCompanyChecklistItem( |
|
|
COMPANY_USER_ID, |
|
|
COMPANY_USER_ID, |
|
|
|