|
|
@@ -146,6 +146,47 @@ class PosStoreControllerSelfDeliveryTest {
|
|
|
assertTrue(((java.util.List<?>) data.get("hours")).isEmpty());
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void myNightMarketSelfDeliveryResolvesStoreByOwner() {
|
|
|
+ // 夜市主登录态只有 userId,接口按归属反查门店行后返回配置
|
|
|
+ login(77L, "3");
|
|
|
+ PosStore market = store(1, 0, 1, 77L);
|
|
|
+ market.setSelfDeliveryEnabled(1);
|
|
|
+ market.setSelfDeliveryMode(1);
|
|
|
+ when(selfDelivery.resolveNightMarketStoreByOwner(77L)).thenReturn(market);
|
|
|
+ when(selfDelivery.listHours(1L)).thenReturn(new ArrayList<>());
|
|
|
+
|
|
|
+ var result = controller.getMyNightMarketSelfDelivery("t");
|
|
|
+ Map<String, Object> data = (Map<String, Object>) result.get("data");
|
|
|
+ assertEquals(Boolean.TRUE, data.get("enabled"));
|
|
|
+ assertEquals(1, data.get("mode"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void myNightMarketSelfDeliveryRejectsUserWithoutNightMarketStore() {
|
|
|
+ // 普通商家反查不到夜市主门店行,读写一律拒绝
|
|
|
+ login(101L, "1");
|
|
|
+ when(selfDelivery.resolveNightMarketStoreByOwner(101L)).thenReturn(null);
|
|
|
+ assertThrows(ServiceException.class, () -> controller.getMyNightMarketSelfDelivery("t"));
|
|
|
+ assertThrows(ServiceException.class,
|
|
|
+ () -> controller.saveMyNightMarketSelfDelivery("t", config(1)));
|
|
|
+ verify(selfDelivery, never()).saveConfig(any());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void saveMyNightMarketSelfDeliveryOverridesClientMdId() {
|
|
|
+ // 配置主体由后端反查决定,前端传入的 mdId 被覆盖,防止越权写其他门店
|
|
|
+ login(77L, "3");
|
|
|
+ when(selfDelivery.resolveNightMarketStoreByOwner(77L)).thenReturn(store(1, 0, 1, 77L));
|
|
|
+
|
|
|
+ controller.saveMyNightMarketSelfDelivery("t", config(999));
|
|
|
+
|
|
|
+ org.mockito.ArgumentCaptor<SelfDeliveryConfigInput> captor =
|
|
|
+ org.mockito.ArgumentCaptor.forClass(SelfDeliveryConfigInput.class);
|
|
|
+ verify(selfDelivery).saveConfig(captor.capture());
|
|
|
+ assertEquals(Integer.valueOf(1), captor.getValue().getMdId());
|
|
|
+ }
|
|
|
+
|
|
|
private SelfDeliveryConfigInput config(Integer mdId) {
|
|
|
SelfDeliveryConfigInput input = new SelfDeliveryConfigInput();
|
|
|
input.setMdId(mdId);
|