Skip to content

Commit ff9a638

Browse files
committed
refactor: standardize platform naming and improve device validation logic
1 parent 10ace7e commit ff9a638

File tree

3 files changed

+27
-20
lines changed

3 files changed

+27
-20
lines changed

src/tools/sdk-utils/bstack/sdkHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export async function runBstackSDKOnly(
3232
device.browser,
3333
device.browserVersion || "latest",
3434
];
35-
} else if (device.platform === "mac" || device.platform === "macos") {
35+
} else if (device.platform === "macos") {
3636
return [
3737
"macos",
3838
device.osVersion,

src/tools/sdk-utils/common/device-validator.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -230,19 +230,10 @@ export async function validateDevices(
230230
}
231231

232232
// Determine what data we need to fetch
233-
// Normalize "mac" to "macos" for consistency
234-
const normalizedDevices = devices.map((env) => {
235-
const platform = (env[0] || "").toLowerCase();
236-
if (platform === "mac") {
237-
return ["macos", ...env.slice(1)];
238-
}
239-
return env;
240-
});
241-
242-
const needsDesktop = normalizedDevices.some((env) =>
233+
const needsDesktop = devices.some((env) =>
243234
["windows", "macos"].includes((env[0] || "").toLowerCase()),
244235
);
245-
const needsMobile = normalizedDevices.some((env) =>
236+
const needsMobile = devices.some((env) =>
246237
["android", "ios"].includes((env[0] || "").toLowerCase()),
247238
);
248239

@@ -284,7 +275,7 @@ export async function validateDevices(
284275
iosIndex = createMobileIndex(iosEntries);
285276
}
286277

287-
for (const env of normalizedDevices) {
278+
for (const env of devices) {
288279
const discriminator = (env[0] || "").toLowerCase();
289280
let validatedEnv: ValidatedEnvironment;
290281

src/tools/sdk-utils/common/schema.ts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,41 @@ const DeviceSchema = z.discriminatedUnion("platform", [
6767
platform: z.literal("windows"),
6868
osVersion: z.string().describe("Windows version, e.g. '10', '11'"),
6969
browser: z.string().describe("Browser name, e.g. 'chrome', 'firefox', 'edge'"),
70-
browserVersion: z.string().describe("Browser version, e.g. '132', 'latest', 'oldest'"),
70+
browserVersion: z
71+
.string()
72+
.optional()
73+
.describe("Browser version, e.g. '132', 'latest', 'oldest'"),
7174
}),
7275
z.object({
7376
platform: z.literal("android"),
74-
deviceName: z.string().describe("Device name, e.g. 'Samsung Galaxy S24'"),
77+
deviceName: z
78+
.string()
79+
.describe("Device name, e.g. 'Samsung Galaxy S24', 'Google Pixel 8'"),
7580
osVersion: z.string().describe("Android version, e.g. '14', '16', 'latest'"),
76-
browser: z.string().describe("Browser name, e.g. 'chrome', 'samsung browser'"),
81+
browser: z
82+
.string()
83+
.optional()
84+
.describe("Browser name, e.g. 'chrome', 'samsung browser'"),
7785
}),
7886
z.object({
7987
platform: z.literal("ios"),
80-
deviceName: z.string().describe("Device name, e.g. 'iPhone 12 Pro'"),
88+
deviceName: z
89+
.string()
90+
.describe("Device name, e.g. 'iPhone 15', 'iPhone 14 Pro'"),
8191
osVersion: z.string().describe("iOS version, e.g. '17', 'latest'"),
82-
browser: z.string().describe("Browser name, typically 'safari'"),
92+
browser: z
93+
.string()
94+
.optional()
95+
.describe("Browser name, typically 'safari'"),
8396
}),
8497
z.object({
85-
platform: z.enum(["mac", "macos"]),
98+
platform: z.literal("macos"),
8699
osVersion: z.string().describe("macOS version name, e.g. 'Sequoia', 'Ventura'"),
87100
browser: z.string().describe("Browser name, e.g. 'safari', 'chrome'"),
88-
browserVersion: z.string().describe("Browser version, e.g. 'latest'"),
101+
browserVersion: z
102+
.string()
103+
.optional()
104+
.describe("Browser version, e.g. 'latest'"),
89105
}),
90106
]);
91107

0 commit comments

Comments
 (0)