mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
test(refactor): dedupe cli and ios script scenarios
This commit is contained in:
@@ -6,6 +6,9 @@ import path from "node:path";
|
||||
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
||||
|
||||
const SCRIPT = path.join(process.cwd(), "scripts", "ios-team-id.sh");
|
||||
const BASH_BIN = process.platform === "win32" ? "bash" : "/bin/bash";
|
||||
const BASE_PATH = process.env.PATH ?? "/usr/bin:/bin";
|
||||
const BASE_LANG = process.env.LANG ?? "C";
|
||||
let fixtureRoot = "";
|
||||
let sharedBinDir = "";
|
||||
let caseId = 0;
|
||||
@@ -25,13 +28,13 @@ function runScript(
|
||||
} {
|
||||
const binDir = path.join(homeDir, "bin");
|
||||
const env = {
|
||||
...process.env,
|
||||
HOME: homeDir,
|
||||
PATH: `${binDir}:${sharedBinDir}:${process.env.PATH ?? ""}`,
|
||||
PATH: `${binDir}:${sharedBinDir}:${BASE_PATH}`,
|
||||
LANG: BASE_LANG,
|
||||
...extraEnv,
|
||||
};
|
||||
try {
|
||||
const stdout = execFileSync("bash", [SCRIPT], {
|
||||
const stdout = execFileSync(BASH_BIN, [SCRIPT], {
|
||||
env,
|
||||
encoding: "utf8",
|
||||
stdio: ["ignore", "pipe", "pipe"],
|
||||
@@ -109,19 +112,20 @@ exit 1`,
|
||||
return { homeDir, binDir };
|
||||
}
|
||||
|
||||
it("falls back to Xcode-managed provisioning profiles when preference teams are empty", async () => {
|
||||
it("resolves fallback and preferred team IDs from provisioning profiles", async () => {
|
||||
const { homeDir } = await createHomeDir();
|
||||
await mkdir(path.join(homeDir, "Library", "MobileDevice", "Provisioning Profiles"), {
|
||||
recursive: true,
|
||||
});
|
||||
await writeFile(
|
||||
path.join(homeDir, "Library", "MobileDevice", "Provisioning Profiles", "one.mobileprovision"),
|
||||
"stub",
|
||||
);
|
||||
const profilesDir = path.join(homeDir, "Library", "MobileDevice", "Provisioning Profiles");
|
||||
await mkdir(profilesDir, { recursive: true });
|
||||
await writeFile(path.join(profilesDir, "one.mobileprovision"), "stub1");
|
||||
|
||||
const result = runScript(homeDir);
|
||||
expect(result.ok).toBe(true);
|
||||
expect(result.stdout).toBe("AAAAA11111");
|
||||
const fallbackResult = runScript(homeDir);
|
||||
expect(fallbackResult.ok).toBe(true);
|
||||
expect(fallbackResult.stdout).toBe("AAAAA11111");
|
||||
|
||||
await writeFile(path.join(profilesDir, "two.mobileprovision"), "stub2");
|
||||
const preferredResult = runScript(homeDir, { IOS_PREFERRED_TEAM_ID: "BBBBB22222" });
|
||||
expect(preferredResult.ok).toBe(true);
|
||||
expect(preferredResult.stdout).toBe("BBBBB22222");
|
||||
});
|
||||
|
||||
it("prints actionable guidance when Xcode account exists but no Team ID is resolvable", async () => {
|
||||
@@ -148,25 +152,6 @@ exit 1`,
|
||||
expect(result.stderr).toContain("IOS_DEVELOPMENT_TEAM");
|
||||
});
|
||||
|
||||
it("honors IOS_PREFERRED_TEAM_ID when multiple profile teams are available", async () => {
|
||||
const { homeDir } = await createHomeDir();
|
||||
await mkdir(path.join(homeDir, "Library", "MobileDevice", "Provisioning Profiles"), {
|
||||
recursive: true,
|
||||
});
|
||||
await writeFile(
|
||||
path.join(homeDir, "Library", "MobileDevice", "Provisioning Profiles", "one.mobileprovision"),
|
||||
"stub1",
|
||||
);
|
||||
await writeFile(
|
||||
path.join(homeDir, "Library", "MobileDevice", "Provisioning Profiles", "two.mobileprovision"),
|
||||
"stub2",
|
||||
);
|
||||
|
||||
const result = runScript(homeDir, { IOS_PREFERRED_TEAM_ID: "BBBBB22222" });
|
||||
expect(result.ok).toBe(true);
|
||||
expect(result.stdout).toBe("BBBBB22222");
|
||||
});
|
||||
|
||||
it("matches preferred team IDs even when parser output uses CRLF line endings", async () => {
|
||||
const { homeDir, binDir } = await createHomeDir();
|
||||
await writeExecutable(
|
||||
|
||||
Reference in New Issue
Block a user