Improve unit test (changelog ignore)

This commit is contained in:
garronej 2022-07-22 15:35:23 +02:00
parent a3a0e9eebe
commit 5e3070a6c4
3 changed files with 109 additions and 39 deletions

View File

@ -1,3 +1,4 @@
import "./replaceImportFromStatic";
import { setupSampleReactProject, sampleReactProjectDirPath } from "./setupSampleReactProject"; import { setupSampleReactProject, sampleReactProjectDirPath } from "./setupSampleReactProject";
import * as st from "scripting-tools"; import * as st from "scripting-tools";
import { join as pathJoin } from "path"; import { join as pathJoin } from "path";

View File

@ -3,65 +3,127 @@ import {
replaceImportsInCssCode, replaceImportsInCssCode,
generateCssCodeToDefineGlobals, generateCssCodeToDefineGlobals,
} from "../../bin/build-keycloak-theme/replaceImportFromStatic"; } from "../../bin/build-keycloak-theme/replaceImportFromStatic";
import { assert } from "tsafe/assert";
import { same } from "evt/tools/inDepth/same";
import { assetIsSameCode } from "../tools/assertIsSameCode";
const { fixedJsCode } = replaceImportsFromStaticInJsCode({ {
"jsCode": ` const jsCodeUntransformed = `
function f() { function f() {
return a.p+"static/js/" + ({}[e] || e) + "." + { return a.p+"static/js/" + ({}[e] || e) + "." + {
3: "0664cdc0" 3: "0664cdc0"
}[e] + ".chunk.js" }[e] + ".chunk.js"
} }
function f2() { function f2() {
return a.p+"static/js/" + ({}[e] || e) + "." + { return a.p+"static/js/" + ({}[e] || e) + "." + {
3: "0664cdc0" 3: "0664cdc0"
}[e] + ".chunk.js" }[e] + ".chunk.js"
} }
`, `;
"urlOrigin": undefined,
});
const { fixedJsCode: fixedJsCodeExternal } = replaceImportsFromStaticInJsCode({ {
"jsCode": ` const { fixedJsCode } = replaceImportsFromStaticInJsCode({
function f() { "jsCode": jsCodeUntransformed,
return a.p+"static/js/" + ({}[e] || e) + "." + { "urlOrigin": undefined,
3: "0664cdc0" });
}[e] + ".chunk.js"
const fixedJsCodeExpected = `
function f() {
return window.kcContext.url.resourcesPath + "/build/static/js/" + ({}[e] || e) + "." + {
3: "0664cdc0"
}[e] + ".chunk.js"
}
function f2() {
return window.kcContext.url.resourcesPath + "/build/static/js/" + ({}[e] || e) + "." + {
3: "0664cdc0"
}[e] + ".chunk.js"
}
`;
assetIsSameCode(fixedJsCode, fixedJsCodeExpected);
}
{
const urlOrigin = "https://example.com";
const { fixedJsCode } = replaceImportsFromStaticInJsCode({
"jsCode": jsCodeUntransformed,
urlOrigin,
});
const fixedJsCodeExpected = `
function f() {
return ("kcContext" in window ? "${urlOrigin}" : "") + a.p + "static/js/" + ({}[e] || e) + "." + {
3: "0664cdc0"
}[e] + ".chunk.js"
}
function f2() {
return ("kcContext" in window ? "${urlOrigin}" : "") + a.p + "static/js/" + ({}[e] || e) + "." + {
3: "0664cdc0"
}[e] + ".chunk.js"
}
`;
assetIsSameCode(fixedJsCode, fixedJsCodeExpected);
}
}
{
const { fixedCssCode, cssGlobalsToDefine } = replaceImportsInCssCode({
"cssCode": `
.my-div {
background: url(/logo192.png) no-repeat center center;
}
.my-div2 {
background: url(/logo192.png) no-repeat center center;
}
.my-div {
background-image: url(/static/media/something.svg);
}
`,
});
const fixedCssCodeExpected = `
.my-div {
background: var(--url1f9ef5a892c104c);
} }
function f2() { .my-div2 {
return a.p+"static/js/" + ({}[e] || e) + "." + { background: var(--url1f9ef5a892c104c);
3: "0664cdc0"
}[e] + ".chunk.js"
} }
`,
"urlOrigin": "https://www.example.com",
});
console.log({ fixedJsCode, fixedJsCodeExternal }); .my-div {
background-image: var(--urldd75cab58377c19);
}
`;
const { fixedCssCode, cssGlobalsToDefine } = replaceImportsInCssCode({ assetIsSameCode(fixedCssCode, fixedCssCodeExpected);
"cssCode": `
.my-div { const cssGlobalsToDefineExpected = {
background: url(/logo192.png) no-repeat center center; "url1f9ef5a892c104c": "url(/logo192.png) no-repeat center center",
} "urldd75cab58377c19": "url(/static/media/something.svg)",
};
.my-div2 { assert(same(cssGlobalsToDefine, cssGlobalsToDefineExpected));
background: url(/logo192.png) no-repeat center center;
}
.my-div { const { cssCodeToPrependInHead } = generateCssCodeToDefineGlobals({
background-image: url(/static/media/something.svg); cssGlobalsToDefine,
} "urlPathname": "/",
`, });
});
console.log({ fixedCssCode, cssGlobalsToDefine }); const cssCodeToPrependInHeadExpected = `
:root {
--url1f9ef5a892c104c: url(\${url.resourcesPath}/build/logo192.png) no-repeat center center;
--urldd75cab58377c19: url(\${url.resourcesPath}/build/static/media/something.svg);
}
`;
const { cssCodeToPrependInHead } = generateCssCodeToDefineGlobals({ assetIsSameCode(cssCodeToPrependInHead, cssCodeToPrependInHeadExpected);
cssGlobalsToDefine, }
"urlPathname": "/",
});
console.log({ cssCodeToPrependInHead }); console.log("PASS replace import from static");

View File

@ -0,0 +1,7 @@
import { assert } from "tsafe/assert";
export function assetIsSameCode(code1: string, code2: string, message?: string): void {
const removeSpacesAndNewLines = (code: string) => code.replace(/\s/g, "").replace(/\n/g, "");
assert(removeSpacesAndNewLines(code1) === removeSpacesAndNewLines(code2), message);
}