Files
erp/test/scripts/admin/displaySetup.ts

95 lines
2.8 KiB
TypeScript

/*
docker run -v ./script.js:/app/script.js --rm playwright:1.47.0
*/
import type { Page } from "playwright";
import login from "../login.ts";
import forms from "../forms.ts";
async function removeLoginForgottenPasswordLink(
{ page, dolibarrAddress }: {
page: Page;
dolibarrAddress: string;
imgFolderPath: string;
},
): Promise<void> {
await page.goto(`${dolibarrAddress}/admin/security.php`);
const label = `Cacher le lien "Mot de passe oublié" sur la page de connexion`;
const row = page.locator("tr").filter({
has: page.locator("td", { hasText: label }),
});
const enableLink = row.locator("a", {
hasText: /^Activer$/,
hasNotText: /^Désactiver$/,
});
const disableLink = row.locator("a", {
hasText: /^Désactiver$/,
hasNotText: /^Activer$/,
});
if (await enableLink.isVisible()) {
await enableLink.click();
} else if (!await disableLink.isVisible()) {
throw new Error("Enable/Disable link not found");
}
}
async function setupLoginPage(
globalCtx: {
page: Page;
dolibarrAddress: string;
imgFolderPath: string;
},
{ removeHelpLink, HTMLMessage, backgroundImage }: {
removeHelpLink?: boolean;
HTMLMessage?: string;
backgroundImage?: string;
},
): Promise<void> {
const { page, dolibarrAddress } = globalCtx;
await page.goto(`${dolibarrAddress}/admin/ihm.php?mode=login`);
await forms.fillForm(
globalCtx,
{
HTMLMessage,
backgroundImage,
removeHelpLink: (removeHelpLink||false).toString(),
},
new Map([
["removeHelpLink",`Cacher le lien «Besoin d'aide ou assistance» sur la page de connexion:toggle`],
["backgroundImage","imagebackground:file"],
["HTMLMessage", "main_home:cke"]
]),
1,
);
}
async function setupDisplay(
globalCtx: {
page: Page;
dolibarrAddress: string;
adminCredentials: { username: string; password: string };
imgFolderPath: string;
},
): Promise<void> {
await login.doAdminLogin(globalCtx);
await removeLoginForgottenPasswordLink(globalCtx);
await setupLoginPage(globalCtx, {
removeHelpLink: true,
HTMLMessage: `
<div style="text-align:center"><span style="color:#000000">Bienvenue chez </span><span style="color:#2c3e50"><em>Gabriel Radureau</em></span><br />
<span style="color:#000000"><em>l&#39;</em></span><span style="color:#e74c3c"><em>ar</em></span><span style="color:#c0392b"><em>change</em></span><span style="color:#000000"><em> du </em></span><span style="color:#2ecc71"><em>code</em></span><br />
<span style="color:#000000">🏹💻🪽<br />
<em><span style="font-size:8px">Pariez sur le bon sagitaire</span></em></span></div>
`.trim(),
backgroundImage: "$IMG/loginBackground.jpeg",
});
}
export default {
setupDisplay,
removeLoginForgottenPasswordLink,
setupLoginPage,
};