|
|
@@ -91,7 +91,10 @@ const cleanup = async () => {
|
|
|
|
|
|
try {
|
|
|
// ── 1. 会话行 ──────────────────────────────────────────────────────
|
|
|
+ // ⚠️ 先置登录态:1887 的读取会**排除访客行**(c_is_login="0"),
|
|
|
+ // 这一段测的是「企业自己的会话」,所以照登录态造数据。
|
|
|
console.log('【1】会话(1887)');
|
|
|
+ enterpriseInfo.value = { credit_code: TEST_CREDIT, name: '验证企业' };
|
|
|
check('upsertDmsSession 新增', (await upsertDmsSession({ sessionId: SESSION_ID, sessionTitle: TITLE_A, creditCode: TEST_CREDIT })) === true);
|
|
|
let sessions = await fetchDmsSessions(TEST_CREDIT);
|
|
|
check('列表能查到', sessions.some((s) => s.session_id === SESSION_ID));
|
|
|
@@ -183,6 +186,7 @@ try {
|
|
|
check('parseDmsTimestamp 毫秒', parseDmsTimestamp(1789651800000) === 1789651800000);
|
|
|
check('parseDmsTimestamp 秒', parseDmsTimestamp(1789651800) === 1789651800000);
|
|
|
check('parseDmsTimestamp 字符串', parseDmsTimestamp('2026-09-17 21:30:00') === 1789651800000, String(parseDmsTimestamp('2026-09-17 21:30:00')));
|
|
|
+ enterpriseInfo.value = null; // 下面这条断言的是**未登录**时的归属形态
|
|
|
check('访客归属形态 访客_<id>', /^访客_.+/.test(resolveDmsCreditCode()), resolveDmsCreditCode());
|
|
|
|
|
|
// ── 8. 1887 的企业字段(2026-09-22 用户要求)──────────────────────
|
|
|
@@ -245,13 +249,44 @@ try {
|
|
|
JSON.stringify(entRow?.c_credit_code)
|
|
|
);
|
|
|
|
|
|
- // 8.4 退出登录后再写:登录态已经不在,就没有"登录值"要保护了 →
|
|
|
- // 对话带出的值与库里不同 → 按新规则更新;但 c_is_login 只填空,不被改回 "0"
|
|
|
+ // 8.4 退出登录后再写(对话里是**另一家**公司)→ 这行已被登录态认领,公司字段**不许被改**
|
|
|
+ // 否则会把这行改到别的公司名下、而 c_is_login 还是 "1" → 串台
|
|
|
enterpriseInfo.value = null;
|
|
|
await upsertDmsSession({ sessionId: SID8, companyInfo: COMPANY_B });
|
|
|
entRow = await sessionRowOf(SID8);
|
|
|
- check('退出后:值不同 → 按对话值更新(登录值不再受保护)', entRow?.c_ent_name === '乙测试公司', JSON.stringify(entRow?.c_ent_name));
|
|
|
- check('退出后:是否登录不被改回 "0"(该字段只填空)', entRow?.c_is_login === '1', JSON.stringify(entRow?.c_is_login));
|
|
|
+ check('退出后:登录认领过的行,企业名称**不被**对话值改写', entRow?.c_ent_name === '登录态公司', JSON.stringify(entRow?.c_ent_name));
|
|
|
+ check('退出后:信用代码**不被**对话值改写', entRow?.c_credit_code === '91310000LOGIN000001', JSON.stringify(entRow?.c_credit_code));
|
|
|
+ check('退出后:是否登录仍为 "1"(该字段只填空)', entRow?.c_is_login === '1', JSON.stringify(entRow?.c_is_login));
|
|
|
+
|
|
|
+ // 8.4b **纯访客行**(从没被登录认领过)→ 公司字段跟着对话走,值不同就更新
|
|
|
+ const SID_GUEST = `verify_guest_${Date.now().toString(36)}`;
|
|
|
+ const COMPANY_C = { profile: { data: { Name: '丙测试公司', CreditCode: '91310000CCCCCCCCCC' } } };
|
|
|
+ const COMPANY_D = { profile: { data: { Name: '丁测试公司', CreditCode: '91310000DDDDDDDDDD' } } };
|
|
|
+ await upsertDmsSession({ sessionId: SID_GUEST, sessionTitle: '纯访客', companyInfo: COMPANY_C });
|
|
|
+ await upsertDmsSession({ sessionId: SID_GUEST, companyInfo: COMPANY_D });
|
|
|
+ const guestRow = await sessionRowOf(SID_GUEST);
|
|
|
+ check('纯访客行:值不同 → 企业名称更新', guestRow?.c_ent_name === '丁测试公司', JSON.stringify(guestRow?.c_ent_name));
|
|
|
+ check('纯访客行:值不同 → 信用代码更新', guestRow?.c_credit_code === '91310000DDDDDDDDDD', JSON.stringify(guestRow?.c_credit_code));
|
|
|
+ check('纯访客行:是否登录 = "0"', guestRow?.c_is_login === '0', JSON.stringify(guestRow?.c_is_login));
|
|
|
+ // 8.5 访客行**不该**出现在那家公司的会话列表里(用户 2026-09-22 明确要求挡住)
|
|
|
+ // ⚠️ 要查**纯访客行实际带着的**公司代码(第一版查错了代码 → 断言恒真 = 假通过;
|
|
|
+ // 第二版查 SID8 → 它已被登录认领,不更新是对的)
|
|
|
+ const guestRows = await fetchDmsSessions('91310000DDDDDDDDDD');
|
|
|
+ check(
|
|
|
+ '**企业登录后看不到访客的会话**(按 c_is_login 过滤)',
|
|
|
+ !guestRows.some((r) => r.session_id === SID_GUEST),
|
|
|
+ `列表里有 ${guestRows.filter((r) => r.session_id === SID_GUEST).length} 行命中`
|
|
|
+ );
|
|
|
+ // 反向:登录态造的行**能**查到(否则就是过滤写反了)
|
|
|
+ // ⚠️ 用新建的行,别用 SESSION_ID —— 它在【5】删除会话那节已经被删掉了
|
|
|
+ const SID9 = `verify_login_${Date.now().toString(36)}`;
|
|
|
+ enterpriseInfo.value = { credit_code: TEST_CREDIT, name: '验证企业' };
|
|
|
+ await upsertDmsSession({ sessionId: SID9, sessionTitle: '登录态会话' });
|
|
|
+ const ownRows = await fetchDmsSessions(TEST_CREDIT);
|
|
|
+ check('登录态造的会话**能**查到(过滤没写反)', ownRows.some((r) => r.session_id === SID9), `共 ${ownRows.length} 行`);
|
|
|
+ enterpriseInfo.value = null;
|
|
|
+ await deleteDmsSession(SID9);
|
|
|
+ await deleteDmsSession(SID_GUEST);
|
|
|
await deleteDmsSession(SID8);
|
|
|
} finally {
|
|
|
console.log('\n【清理】');
|