Files
jiapu/tests/utils.test.js
T
2026-07-11 09:27:48 +08:00

58 lines
1.9 KiB
JavaScript

const assert = require('assert');
const StorageUtil = require('../utils/StorageUtil.js');
const FormUtil = require('../utils/FormUtil.js');
const AxiosRequestUtil = require('../utils/AxiosRequestUtil.js');
assert.strictEqual(FormUtil.trimOrUndefined(' 张三 '), '张三');
assert.strictEqual(FormUtil.trimOrUndefined(' '), undefined);
assert.strictEqual(FormUtil.toNumberOrUndefined('12'), 12);
assert.strictEqual(FormUtil.toNumberOrUndefined(''), undefined);
assert.strictEqual(FormUtil.toBoolean('on'), true);
assert.strictEqual(FormUtil.toBoolean('0'), false);
const store = {};
const storage = {
getItem: (key) => Object.prototype.hasOwnProperty.call(store, key) ? store[key] : null,
setItem: (key, value) => {
store[key] = String(value);
},
removeItem: (key) => {
delete store[key];
}
};
StorageUtil.write(storage, 'token', 'abc');
assert.strictEqual(StorageUtil.read(storage, 'token'), 'abc');
StorageUtil.remove(storage, 'token');
assert.strictEqual(StorageUtil.read(storage, 'token'), null);
const calls = [];
const requester = AxiosRequestUtil.createRequester({
baseUrl: 'http://182.61.18.23:8080',
clientId: 'pc-client',
tokenHeaderName: 'Authorization',
getToken: () => 'token-x',
axiosInstance: {
request: async (config) => {
calls.push(config);
return {
status: 200,
data: { code: 200, data: { ok: true } }
};
}
}
});
requester('GET', '/genealogy/pc/auth/profile', {
query: { keyword: '汤 氏' }
}).then((data) => {
assert.deepStrictEqual(data, { ok: true });
assert.strictEqual(calls[0].method, 'get');
assert.strictEqual(calls[0].url, '/genealogy/pc/auth/profile');
assert.deepStrictEqual(calls[0].params, { keyword: '汤 氏' });
assert.strictEqual(calls[0].headers.clientid, 'pc-client');
assert.strictEqual(calls[0].headers.Authorization, 'Bearer token-x');
console.log('utils tests passed');
});