package com.talentcard.server.business.admin;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Map;
import java.util.UUID;
import com.talentcard.server.business.PageResult;
import com.talentcard.server.common.SensitiveDataCrypto;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ActiveProfiles;
/**
* 「商户进件」与「银行卡申请」两个列表、以及进件详情里几个「显示不对 / 显示不全」的回归。
*
*
这几处原来都靠同名列撞车后的偶然结果、或一份写死的映射兜着:改一行 SQL、换一个 switch
* 分支就会悄悄退回去,而页面上只是少显示一个值,不会报错。所以断言都盯「运营最终看到的那一列
* 是什么值」,而不是盯 SQL 或实现长什么样。
*/
@SpringBootTest
@ActiveProfiles("test")
class MerchantSettlementAdminListTests {
@Autowired
private JdbcTemplate jdbc;
@Autowired
private MerchantSettlementAdminService settlementAdminService;
@Autowired
private SensitiveDataCrypto crypto;
/**
* 列表上的「商家名称 / 商家类型 / 联系方式」必须和筛选框用的是同一份值。
*
*
进件表和商户表都有 merchant_name、merchant_type、contact_mobile,而查询里带了 a.*,
* 同名列会有两份。原来列表取到的是进件表那份(申请时填的,个人主体通常为空),筛选却走商户表,
* 于是出现「输入商家名能筛出记录、商家名称列却整列空白」。申请时填的名称不该被丢掉,
* 但要用另一个键名带出来。
*/
@Test
void theOnboardingListShowsTheMerchantTableValuesThatTheFiltersMatchOn() {
String suffix = uniqueSuffix();
String merchantName = "进件列表商户 " + suffix;
String enteredName = "申请人填的商户名称 " + suffix;
Long merchantId = insertMerchant(merchantName, "餐饮服务");
Long storeId = insertStore(merchantId, "进件列表门店 " + suffix);
insertOnboarding(merchantId, storeId, "MO-LIST-" + suffix, enteredName, null);
PageResult