Test fixes for UrlParser, HtmlElementCreator
All checks were successful
CI / ci-tests (push) Successful in 15s

Also fix old parseQueryString and alias it to getQueryStringParam
This commit is contained in:
2025-03-10 19:32:42 +09:00
parent 41e794b35d
commit c818e56f3e
9 changed files with 153 additions and 50 deletions

View File

@@ -7,6 +7,11 @@ import {
} from '../src/utils/FormatBytes.mjs';
let bytes_map = [
{
"in": "120MB",
"out": "120MB",
"out_l": "120MB",
},
{
"in": -123123123,
"out": "-120237.42kB",
@@ -57,6 +62,7 @@ describe("formatBytes", () => {
it('convert bytes to human readable, round up to next set', () => {
// expect(formatBytes(1021152)).toBe('0.97MB');
for (const bytes of bytes_map) {
// @ts-ignore
expect(formatBytes(bytes.in)).toBe(bytes.out);
}
});
@@ -66,6 +72,7 @@ describe("formatBytesLong", () => {
it('convert bytes to human readable, keep on current set', () => {
expect(formatBytesLong(1021152)).toBe('997.22 KB');
for (const bytes of bytes_map) {
// @ts-ignore
expect(formatBytesLong(bytes.in)).toBe(bytes.out_l);
}
});

View File

@@ -257,6 +257,41 @@ describe("ael", () => {
"tag": "div"
}
);
let test_cel = hec.ael(
hec.cel('div', 'block-id'),
hec.cel('div', 'sub-id'),
);
expect(hec.ael(test_cel, hec.cel('div', 'new-block'), 'sub-id')).toEqual(
{
"content": "",
"css": [],
"id": "block-id",
"name": undefined,
"options": {},
"sub": [
{
"content": "",
"css": [],
"id": "sub-id",
"name": undefined,
"options": {},
"sub": [
{
"content": "",
"css": [],
"id": "new-block",
"name": undefined,
"options": {},
"sub": [],
"tag": "div"
}
],
"tag": "div"
}
],
"tag": "div"
}
);
});
});
@@ -640,11 +675,11 @@ describe("phfo", () => {
"id": "block test",
"in": hec.aelx(hec.cel('div', 'outer-id'),
hec.aelx(hec.cel('div', 'inner-id'),
hec.cel('input', 'some-id', '', ['abc'], {"type": "button", "onclick": "send()"})
hec.cel('input', 'some-id', '', ['abc'], {"type": "button", "onclick": "send()"}),
hec.cel('div', '', 'content')
)
),
"out": '<div id="outer-id"><div id="inner-id"><input id="some-id" name="some-id" class="abc" type="button" onclick="send()"></div></div>'
"out": '<div id="outer-id"><div id="inner-id"><input id="some-id" name="some-id" class="abc" type="button" onclick="send()"><div>content</div></div></div>'
}
];
for (const cel_entry of cel_list) {

View File

@@ -24,6 +24,8 @@ describe("roundPrecision", () => {
it('should round numbers to a given precision', () => {
let val = roundPrecision(10.1234, 2);
expect(val).toBe(10.12);
// @ts-ignore
expect(roundPrecision("abc", 2)).toBe("abc");
});
});

View File

@@ -5,17 +5,99 @@ import {
getQueryStringParam,
} from '../src/utils/UrlParser.mjs';
describe("parseQueryString", () => {
it('Should parse query string for key', () => {
let kv = parseQueryString("http://foor.org?key=value");
expect(kv).toEqual({"http://foor.org?key": "value"});
});
});
let url_list = [
{
"id": "no params",
"in": {
"query": "http://foor.org",
"search": "",
"single": false
},
"out": {}
},
{
"id": "no params",
"in": {
"query": "http://foor.org/?param",
"search": "",
"single": false
},
"out": {"param": ""}
},
{
"id": "one params",
"in": {
"query": "http://foor.org/?param=foo",
"search": "",
"single": false
},
"out": {"param": "foo"}
},
{
"id": "two params",
"in": {
"query": "http://foor.org/?param=foo&bar=other",
"search": "",
"single": false
},
"out": {"param": "foo", "bar": "other"}
},
{
"id": "two params, select",
"in": {
"query": "http://foor.org/?param=foo&bar=other",
"search": "bar",
"single": false
},
"out": "other"
},
{
"id": "two params, same",
"in": {
"query": "http://foor.org/?param=foo&param=other",
"search": "",
"single": false
},
"out": {"param": ["foo", "other"]}
},
{
"id": "two params, same, single but no search",
"in": {
"query": "http://foor.org/?param=foo&param=other",
"search": "",
"single": true
},
// "out": {"param": ["foo", "other"]}
"out": {"param": "foo"}
},
{
"id": "three params, same, search",
"in": {
"query": "http://foor.org/?param=foo&param=other&different=1",
"search": "param",
"single": false
},
"out": ["foo", "other"]
},
];
describe("getQueryStringParam", () => {
it('Should parse query string for key', () => {
let kv = getQueryStringParam("key", "http://foor.org?key=value");
expect(kv).toEqual("value");
for (const url of url_list) {
expect(
getQueryStringParam(url.in.search, url.in.query, url.in.single)
).toEqual(url.out);
}
});
});
describe("parseQueryString", () => {
it('Should parse query string for key', () => {
// let kv = getQueryStringParam("key", "http://foor.org?key=value");
// expect(kv).toEqual("value");
for (const url of url_list) {
expect(
parseQueryString(url.in.query, url.in.search, url.in.single)
).toEqual(url.out);
}
});
});