/** * Common公用方法测试用例 */ import test from 'node:test'; import assert from 'node:assert'; import common from '../common.mjs'; import md5 from 'md5'; test('Common function sortDict test', (t) => { let params = { b: 2, a: 1 }; const expectRes = { a: 1, b: 2 }; assert.deepEqual(common.sortDict(params), expectRes); }); test('Common function getConfigFromJsonFile test', async (t) => { let filename = 'config.json'; let config = await common.getConfigFromJsonFile(filename); assert.ok(config); const expectName = 'Hero Union'; assert.strictEqual(config.name, expectName); }); test('Common function getLocalTimeString test', async (t) => { let timeString = common.getLocalTimeString('zh-CN', 'Asia/Shanghai'); console.log('北京时间:%s', timeString); assert.ok(timeString); timeString = common.getLocalTimeString('zh-HK', 'UTC'); console.log('香港UTC时间:%s', timeString); assert.ok(timeString); }); test('Common function log/info/warn/error test', async (t) => { let string = '测试log输出'; let args = []; args = common.log(string); assert.ok(args); assert.equal(/^\[%s\] /i.test(args[0]), true); assert.equal(args.length, 2); args = common.log('console.log替换测试:%s', string); assert.ok(args); assert.equal(/^\[%s\] /i.test(args[0]), true); assert.equal(args.length, 3); assert.equal(args[args.length - 1], string); args = common.info('console.info替换测试:%s', string); assert.ok(args); assert.equal(/^\[%s\] /i.test(args[0]), true); assert.equal(args.length, 3); assert.equal(args[args.length - 1], string); args = common.warn('console.warn替换测试:%s', string); assert.ok(args); assert.equal(/^\[%s\] /i.test(args[0]), true); assert.equal(args.length, 3); assert.equal(args[args.length - 1], string); args = common.error('console.error替换测试:%s,再重复一次:%s', string, string); assert.ok(args); assert.equal(/^\[%s\] /i.test(args[0]), true); assert.equal(args.length, 4); assert.equal(args[args.length - 1], string); console.log("插入日期后的参数:\n%s", args); }); test('Common function isNormalName test', async (t) => { let case1 = common.isNormalName('test01', 5); assert.equal(case1, true); let case2 = common.isNormalName('test01', 8); assert.equal(case2, false); let case3 = common.isNormalName('test0123456', 6, 10); assert.equal(case3, false); let case4 = common.isNormalName('test0123456', 6, 15); assert.equal(case4, true); let case5 = common.isNormalName(md5('test0123456'), 32, 32); assert.equal(case5, true); }); test('Common function isTaskIdOk test', async (t) => { let case1 = common.isTaskIdOk('test01'); assert.equal(case1, false); let case2 = common.isTaskIdOk('test01_hello'); assert.equal(case2, false); let case3 = common.isTaskIdOk('test0_123456'); assert.equal(case3, false); let case4 = common.isTaskIdOk('test01_0123456789'); assert.equal(case4, false); let case5 = common.isTaskIdOk('test01_1234567890123'); assert.equal(case5, true); }); test('Common function byteSize test', async (t) => { let case1 = common.byteSize('a'); assert.equal(case1, 1); let case2 = common.byteSize('0'); assert.equal(case2, 1); let case3 = common.byteSize('你'); assert.equal(case3, 3); let case4 = common.byteSize('😃'); assert.equal(case4, 4); let case5 = common.byteSize('hello 你'); assert.equal(case5, 9); }); test('Common function saveLog test', async (t) => { let data = {a: 1, b:2}; let filename = './log/test.log'; let saved = await common.saveLog(filename, JSON.stringify(data)); assert.equal(saved, true); //case 2 filename = './logs/test.log'; saved = await common.saveLog(filename, JSON.stringify(data)); assert.equal(saved, false); }); test('Common function isUrlOk test', async (t) => { let url = 'https://www.bilibili.com/video/BV1AM41137LB/?share_source=copy_web'; let urlOk = common.isUrlOk(url); assert.equal(urlOk, true); //case 2 url = 'https://www.bilibili.com/video/BV1AM41137LB/'; urlOk = common.isUrlOk(url); assert.equal(urlOk, true); //case 3 url = 'http://127.0.0.1:8080/video/BV1AM41137LB.html'; urlOk = common.isUrlOk(url); assert.equal(urlOk, true); //case 4 url = '//127.0.0.1:8080/video/BV1AM41137LB.html'; urlOk = common.isUrlOk(url); assert.equal(urlOk, false); //case 5 url = 'https://www.bil-ibili.com/video/BV1AM4_1137LB/'; urlOk = common.isUrlOk(url); assert.equal(urlOk, true); //case 6 url = 'https://tajian.tv/1000/frontapi/hunotify/'; urlOk = common.isUrlOk(url); assert.equal(urlOk, true); });