Files

11 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

const fs=require('node:fs'),vm=require('node:vm'),assert=require('node:assert/strict');
const ts=require('D:/Develop/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/typescript/lib/typescript.js');
const out={};vm.runInNewContext(ts.transpileModule(fs.readFileSync(__dirname+'/../services/cities.uts','utf8'),{compilerOptions:{module:ts.ModuleKind.CommonJS,target:ts.ScriptTarget.ES2020}}).outputText,{exports:out});
const {provinceOptions,provinceCodeForName,provinceForCity}=out;let checks=0;
const eq=(a,b,label)=>{assert.deepEqual(JSON.parse(JSON.stringify(a)),b,label);checks++};
eq(provinceOptions.length,34,'34 province-level choices');eq(new Set(provinceOptions.map(p=>p.code)).size,34,'codes unique');
for(const[name,code]of[['广东省','440000'],['江苏省','320000'],['北京市','110000'],['重庆市','500000'],['台湾省','710000'],['香港特别行政区','810000'],['澳门特别行政区','820000'],['',null],['深圳市',null],['未知省',null]])eq(provinceCodeForName(name),code,name);
for(const[name,province]of[['深圳市','广东省'],['南京市','江苏省'],['重庆市','重庆市'],['仙桃市','湖北省'],['白杨市','新疆维吾尔自治区'],['台北市','台湾省'],['广东省','广东省'],['旧手填地区','']])eq(provinceForCity(name),province,'restore '+name);
for(const p of provinceOptions)eq(provinceCodeForName(p.name),p.code,'province name/code exact');
console.log(`PASS: ${checks} province option UTS checks`);