| 123456789101112 |
- import {test} from 'node:test';
- import assert from 'node:assert/strict';
- import {readFileSync} from 'node:fs';
- import {runInNewContext} from 'node:vm';
- import {PGlite} from '@electric-sql/pglite';
- test('排课学员姓名跳过空白字段,兼容旧昵称、预约标题和缺失资料',async()=>{
- const expression=runInNewContext(readFileSync(new URL('../cloud/mobile-teaching.js',import.meta.url),'utf8')+';companionStudentNameSql()');
- const db=new PGlite();try{
- const rows=[['小徐','','{}','其他(60分钟练习)','login','小徐'],['',' ','{"HoneyName":"花花"}','其他(60分钟练习)','login','花花'],['','','{}','张雅茜(60分钟练习)','login','张雅茜'],[null,null,'{}','',null,'学员 213']];
- for(const [realName,nickname,legacy,title,username,expected]of rows){const result=await db.query(`SELECT ${expression} AS name FROM (SELECT $1::text "realName",$2::text nickname,$3::jsonb "legacyUserData",$5::text username) u CROSS JOIN (SELECT $4::text title) c CROSS JOIN (SELECT '213'::text szyh) a`,[realName,nickname,legacy,title,username]);assert.equal(result.rows[0].name,expected);}
- }finally{await db.close();}
- });
|