diff --git a/integration-test/__recordings__/mobile%20test%20run%20https%3A%2F%2Fmobile-app.autify.com%2Fprojects%2F4yyFEL%2Ftest_plans%2FWptd97%20--build-id%3Dd1ulrD%20--device-ids%3DR5CY23ND1KE/polly-proxy_3343057686/recording.har b/integration-test/__recordings__/mobile%20test%20run%20https%3A%2F%2Fmobile-app.autify.com%2Fprojects%2F4yyFEL%2Ftest_plans%2FWptd97%20--build-id%3Dd1ulrD%20--device-ids%3DR5CY23ND1KE/polly-proxy_3343057686/recording.har new file mode 100644 index 00000000..ff4aff94 --- /dev/null +++ b/integration-test/__recordings__/mobile%20test%20run%20https%3A%2F%2Fmobile-app.autify.com%2Fprojects%2F4yyFEL%2Ftest_plans%2FWptd97%20--build-id%3Dd1ulrD%20--device-ids%3DR5CY23ND1KE/polly-proxy_3343057686/recording.har @@ -0,0 +1,60 @@ +{ + "log": { + "_recordingName": "polly-proxy", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "c90f4943749242a1114af0032f22f880", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 50, + "cookies": [], + "headers": [], + "headersSize": 341, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"build_id\":\"d1ulrD\",\"device_ids\":[\"R5CY23ND1KE\"]}" + }, + "queryString": [], + "url": "https://mobile-app.autify.com/api/v1/test_plans/Wptd97/test_plan_results" + }, + "response": { + "bodySize": 587, + "content": { + "mimeType": "application/json; charset=utf-8", + "size": 587, + "text": "{\"id\":\"3JtzREP\",\"test_plan\":{\"id\":\"Wptd97\",\"name\":\"Autify CLI (Android)\",\"created_at\":\"2022-09-15T09:35:38.921Z\",\"updated_at\":\"2023-04-06T06:28:40.756Z\",\"build\":{\"id\":\"d1ulrD\",\"name\":\"Sunflower\",\"version\":\"0.1.6 1\",\"created_at\":\"2022-09-15T09:34:57.606Z\",\"updated_at\":\"2023-09-19T08:11:30.933Z\"},\"execute_environments\":[{\"id\":\"KXHGgw\",\"name\":\"SM-S721Q android 15 (Local)\",\"device\":\"r12sjpnx\",\"use_type\":\"local_real\",\"os\":\"android\",\"os_version\":\"15\",\"beta\":false,\"selectable_as_default_recorder\":false,\"device_identifier\":\"R5CY23ND1KE\",\"device_name\":\"SM-S721Q\",\"visibility\":\"personal\"}]}}" + }, + "cookies": [], + "headers": [], + "headersSize": 1200, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-10-15T11:44:16.348Z", + "time": 1521, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1521 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/integration-test/__snapshots__/golden/mobileTestRunWithDeviceIds.test.js.snap b/integration-test/__snapshots__/golden/mobileTestRunWithDeviceIds.test.js.snap new file mode 100644 index 00000000..fca1f579 --- /dev/null +++ b/integration-test/__snapshots__/golden/mobileTestRunWithDeviceIds.test.js.snap @@ -0,0 +1,14 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`autify mobile test run https://mobile-app.autify.com/projects/AAA/test_plans/BBB --build-id CCC --device-ids DDD 1`] = ` +{ + "stderr": "", + "stdout": "[HPM] Proxy created: / -> https://app.autify.com +[HPM] Proxy created: / -> https://mobile-app.autify.com +✅ Successfully started: https://mobile-app.autify.com/projects/4yyFEL/results/3JtzREP +To wait for the test result, run the command below: +💻 $ autify mobile test wait https://mobile-app.autify.com/projects/4yyFEL/results/3JtzREP +[HPM] server close signal received: closing proxy server +", +} +`; diff --git a/integration-test/src/commands.ts b/integration-test/src/commands.ts index 5189ecfe..61eb36b6 100644 --- a/integration-test/src/commands.ts +++ b/integration-test/src/commands.ts @@ -13,6 +13,7 @@ const mobileIosRealDeviceTestPlanUrl = "https://mobile-app.autify.com/projects/4yyFEL/test_plans/1EtZ0P"; const mobileWorkspaceId = "4yyFEL"; const mobileAndroidBuildId = "d1ulrD"; +const mobileDeviceIds = "R5CY23ND1KE"; // Need to replace with your device ID(s) when you update the golden file. const concatFlagAndValue = (args: string[]) => { const newArgs = []; @@ -75,6 +76,8 @@ const replaceMobileWorkspaceId = (arg: string) => : arg; const replaceMobileAndroidBuildId = (arg: string) => arg.startsWith("--build-id=") ? `--build-id=${mobileAndroidBuildId}` : arg; +const replaceMobileDeviceIds = (arg: string) => + arg.startsWith("--device-ids=") ? `--device-ids=${mobileDeviceIds}` : arg; const replaceMobileAndroidBuildPath = (arg: string) => arg.replace(/^(--[^=]+=)?.+\.apk$/, `$1${androidBuildPath}`); const replaceMobileIosBuildPath = (arg: string) => @@ -112,6 +115,7 @@ const replaceConstants = (args: string[]) => { .map((a) => replaceMobileWorkspaceId(a)) .map((a) => replaceMobileTetsPlanUrl(a, "android")) .map((a) => replaceMobileAndroidBuildId(a)) + .map((a) => replaceMobileDeviceIds(a)) .map((a) => replaceMobileAndroidBuildPath(a)); } diff --git a/integration-test/src/test/golden/mobileTestRunWithDeviceIds.test.ts b/integration-test/src/test/golden/mobileTestRunWithDeviceIds.test.ts new file mode 100644 index 00000000..7d82c9e3 --- /dev/null +++ b/integration-test/src/test/golden/mobileTestRunWithDeviceIds.test.ts @@ -0,0 +1,6 @@ +/* eslint-disable unicorn/filename-case */ +import { testAutifyCliSnapshot } from "../helpers/testAutifyCliSnapshot"; + +testAutifyCliSnapshot( + "mobile test run https://mobile-app.autify.com/projects/AAA/test_plans/BBB --build-id CCC --device-ids DDD" +); diff --git a/integration-test/tsconfig.tsbuildinfo b/integration-test/tsconfig.tsbuildinfo index 666fd93e..4dabbaef 100644 --- a/integration-test/tsconfig.tsbuildinfo +++ b/integration-test/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/commands.ts","./src/bin/autify-cli-integration-test.ts","./src/bin/autify-mobile-generate-fake-app.ts","./src/bin/autify-with-proxy.ts","./src/test/golden/mobilebuildupload.test.ts","./src/test/golden/mobilebuilduploadios.test.ts","./src/test/golden/mobilebuilduploadiosipa.test.ts","./src/test/golden/mobilebuilduploadjson.test.ts","./src/test/golden/mobiletestrun.test.ts","./src/test/golden/mobiletestrunandroid.test.ts","./src/test/golden/mobiletestrunandroidwait.test.ts","./src/test/golden/mobiletestrunios.test.ts","./src/test/golden/mobiletestruniosipawait.test.ts","./src/test/golden/mobiletestrunioswait.test.ts","./src/test/golden/mobiletestrunwait.test.ts","./src/test/golden/webtestrun.test.ts","./src/test/golden/webtestrunautifyconnectclient.test.ts","./src/test/golden/webtestruntestplan.test.ts","./src/test/golden/webtestruntestplanautifyconnectclient.test.ts","./src/test/golden/webtestruntestplanwait.test.ts","./src/test/golden/webtestrunurlreplacements.test.ts","./src/test/golden/webtestrunurlreplacementsdeprecated.test.ts","./src/test/golden/webtestrunwait.test.ts","./src/test/helpers/execautifycli.ts","./src/test/helpers/testautifyclisnapshot.ts"],"version":"5.8.3"} \ No newline at end of file +{"root":["./src/commands.ts","./src/bin/autify-cli-integration-test.ts","./src/bin/autify-mobile-generate-fake-app.ts","./src/bin/autify-with-proxy.ts","./src/test/golden/mobilebuildupload.test.ts","./src/test/golden/mobilebuilduploadios.test.ts","./src/test/golden/mobilebuilduploadiosipa.test.ts","./src/test/golden/mobilebuilduploadjson.test.ts","./src/test/golden/mobiletestrun.test.ts","./src/test/golden/mobiletestrunandroid.test.ts","./src/test/golden/mobiletestrunandroidwait.test.ts","./src/test/golden/mobiletestrunios.test.ts","./src/test/golden/mobiletestruniosipawait.test.ts","./src/test/golden/mobiletestrunioswait.test.ts","./src/test/golden/mobiletestrunwait.test.ts","./src/test/golden/mobiletestrunwithdeviceids.test.ts","./src/test/golden/webtestrun.test.ts","./src/test/golden/webtestrunautifyconnectclient.test.ts","./src/test/golden/webtestruntestplan.test.ts","./src/test/golden/webtestruntestplanautifyconnectclient.test.ts","./src/test/golden/webtestruntestplanwait.test.ts","./src/test/golden/webtestrunurlreplacements.test.ts","./src/test/golden/webtestrunurlreplacementsdeprecated.test.ts","./src/test/golden/webtestrunwait.test.ts","./src/test/helpers/execautifycli.ts","./src/test/helpers/testautifyclisnapshot.ts"],"version":"5.8.3"} \ No newline at end of file