30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
|
import { execSync } from "child_process";
|
||
|
import { existsSync, readFileSync, rmSync, writeFileSync } from "fs";
|
||
|
import path from "path";
|
||
|
|
||
|
const testDir = "keycloakify_starter_test";
|
||
|
|
||
|
if (existsSync(path.join(process.cwd(), testDir))) {
|
||
|
rmSync(path.join(process.cwd(), testDir), { recursive: true });
|
||
|
}
|
||
|
// Build and link package
|
||
|
execSync("yarn build");
|
||
|
const pkgJSON = JSON.parse(readFileSync(path.join(process.cwd(), "package.json")).toString("utf8"));
|
||
|
pkgJSON.main = "./index.js";
|
||
|
pkgJSON.types = "./index.d.ts";
|
||
|
pkgJSON.scripts.prepare = undefined;
|
||
|
writeFileSync(path.join(process.cwd(), "dist", "package.json"), JSON.stringify(pkgJSON));
|
||
|
// Wrapped in a try/catch because unlink errors if the package isn't linked
|
||
|
try {
|
||
|
execSync("yarn unlink");
|
||
|
} catch {}
|
||
|
execSync("yarn link", { cwd: path.join(process.cwd(), "dist") });
|
||
|
|
||
|
// Clone latest keycloakify-starter and link to keycloakify output
|
||
|
execSync(`git clone https://github.com/keycloakify/keycloakify-starter.git ${testDir}`);
|
||
|
execSync("yarn install", { cwd: path.join(process.cwd(), testDir) });
|
||
|
execSync("yarn link keycloakify", { cwd: path.join(process.cwd(), testDir) });
|
||
|
|
||
|
//Ensure keycloak theme can be built
|
||
|
execSync("yarn build-keycloak-theme", { cwd: path.join(process.cwd(), testDir) });
|