Add tests for TransposeFolderData and make it so it replaces multiple items in onekey

This commit is contained in:
zkldi
2021-12-13 18:45:51 +00:00
parent 4f06d4f096
commit 78710a07bb
2 changed files with 46 additions and 2 deletions
+45 -1
View File
@@ -4,7 +4,7 @@ import { ChartDocument, FolderDocument } from "tachi-common";
import t from "tap";
import ResetDBState from "test-utils/resets";
import { Testing511SPA } from "test-utils/test-data";
import { GetFolderChartIDs, ResolveFolderToCharts } from "./folder";
import { GetFolderChartIDs, ResolveFolderToCharts, TransposeFolderData } from "./folder";
t.todo("#CreateFolderChartLookup");
t.todo("#GetFolderCharts");
@@ -198,3 +198,47 @@ t.test("#GetFolderChartIDs", (t) => {
t.end();
});
t.test("#TransposeFolderData", (t) => {
t.strictSame(
TransposeFolderData({
"foo¬bar": 1,
}),
{
"foo.bar": 1,
},
"Should transpose single keys."
);
t.strictSame(
TransposeFolderData({
"foo¬bar": 1,
"foo¬baz": 2,
"foo~bar": 2,
"foo~baz": 2,
}),
{
"foo.bar": 1,
"foo.baz": 2,
foo$baz: 2,
foo$baz: 2,
},
"Should transpose multiple keys."
);
t.strictSame(
TransposeFolderData({
"foo¬bar¬baz": 1,
"foo¬bar~baz": 1,
"foo~bar~baz": 1,
}),
{
"foo.bar$baz": 1,
"foo.bar.baz": 1,
foo$bar$baz: 1,
},
"Should transpose multiple items in one key."
);
t.end();
});
+1 -1
View File
@@ -93,7 +93,7 @@ export function TransposeFolderData(obj: Record<string, unknown>) {
const transposedObj: Record<string, unknown> = {};
for (const key in obj) {
const transposedKey = key.replace(/~/u, "$").replace(/¬/u, ".");
const transposedKey = key.replace(/~/gu, "$").replace(/¬/gu, ".");
if (typeof obj[key] === "object" && obj[key]) {
transposedObj[transposedKey] = TransposeFolderData(obj[key] as Record<string, unknown>);