koa-web-kit
Version:
A modern, production-ready, and full-stack node web framework
77 lines (66 loc) • 2.36 kB
JavaScript
import r, { api, Request } from 'modules/Request';
const origin = 'http://127.0.0.1:3000';
const myUrl = `${origin}${api.TEST}?a=b&b=c&a=bb`;
const myUrl2 = `${myUrl}#myHash`;
test('getQueryString()', () => {
const query = r.getQueryString(`${origin}?a=&b=c`);
expect(query).toEqual({ a: '', b: 'c' });
});
test('getQueryString() multiple values for same key', () => {
const query = r.getQueryString(myUrl);
expect(query).toEqual({ a: ['b', 'bb'], b: 'c' });
});
test('addQueryString()', () => {
const newUrl = r.addQueryString(myUrl, { d: 'e' }, undefined, false);
expect(newUrl).toBe(`${myUrl}&d=e`);
});
test('stripUrlHash()', () => {
const newUrl = r.stripUrlHash(myUrl2);
expect(newUrl).toBe(myUrl);
});
test('normalizeRestfulParams() in array', () => {
const newUrl = r.normalizeRestfulParams('/school/:id/classroom/:roomId', {
restParams: ['123', '456'],
});
expect(newUrl).toBe('/school/123/classroom/456');
});
test('normalizeRestfulParams() in object', () => {
const newUrl = r.normalizeRestfulParams('/school/:id/classroom/:roomId', {
restParams: {
roomId: '456',
id: '123',
},
});
expect(newUrl).toBe('/school/123/classroom/456');
});
test('formatFormUrlEncodeData()', () => {
let data = r.formatFormUrlEncodeData({ a: 'b', c: 1 });
data = decodeURIComponent(data);
expect(data).toBe('a=b&c=1');
});
test('formatFormUrlEncodeData() value in array', () => {
let data = r.formatFormUrlEncodeData({ a: ['b', 'bb'], c: 1 });
data = decodeURIComponent(data);
expect(data).toBe('a=b,bb&c=1');
});
test('normalizeBodyData()', () => {
const data = { a: 'b', c: 1 };
const newData = r.normalizeBodyData(data);
expect(newData).toBe(JSON.stringify(data));
});
test('normalizeBodyData() in form_url_encoded', () => {
const temp = new Request({ form: true });
const data = { a: 'b', c: 1 };
const newData = temp.normalizeBodyData(data);
expect(newData).toBe('a=b&c=1');
});
test('getUrlWithPrefix(string)', () => {
const temp = new Request({ apiPrefix: '/test' });
const newUrl = temp.getUrlWithPrefix('/login');
expect(newUrl).toBe('/test/login');
});
test('getUrlWithPrefix(object)', () => {
const temp = new Request({ apiPrefix: '/test' });
const newUrl = temp.getUrlWithPrefix({ prefix: '/test2', path: '/login' });
expect(newUrl).toBe('/test2/login');
});