@astur-mobile/cli 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/brand/Astur_A_balck.png +0 -0
- package/assets/brand/Astur_A_white.png +0 -0
- package/assets/brand/astur-logo-dark.png +0 -0
- package/assets/brand/astur-logo-light.png +0 -0
- package/assets/brand/astur-mark-light.png +0 -0
- package/assets/brand/astur-mark-transparent.png +0 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +917 -0
- package/dist/index.js.map +1 -0
- package/dist/inspectorServer.d.ts +194 -0
- package/dist/inspectorServer.d.ts.map +1 -0
- package/dist/inspectorServer.js +3487 -0
- package/dist/inspectorServer.js.map +1 -0
- package/dist/inspectorUi.d.ts +17 -0
- package/dist/inspectorUi.d.ts.map +1 -0
- package/dist/inspectorUi.js +1181 -0
- package/dist/inspectorUi.js.map +1 -0
- package/dist/scaffold.d.ts +67 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +470 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspectorUi.js","sourceRoot":"","sources":["../src/inspectorUi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { PlatformName } from '@astur-mobile/protocol';
|
|
2
|
+
type AndroidTarget = 'emulator' | 'real' | 'browserstack';
|
|
3
|
+
type IosTarget = 'simulator' | 'real' | 'browserstack';
|
|
4
|
+
export interface InitAnswers {
|
|
5
|
+
platforms: PlatformName[];
|
|
6
|
+
timeout: number;
|
|
7
|
+
reports: {
|
|
8
|
+
html: boolean;
|
|
9
|
+
junit: boolean;
|
|
10
|
+
};
|
|
11
|
+
artifacts: {
|
|
12
|
+
screenshot: 'off' | 'on' | 'only-on-failure';
|
|
13
|
+
video: 'off' | 'on' | 'retain-on-failure';
|
|
14
|
+
trace: 'off' | 'on' | 'retain-on-failure';
|
|
15
|
+
};
|
|
16
|
+
android?: AndroidAnswers;
|
|
17
|
+
ios?: IosAnswers;
|
|
18
|
+
}
|
|
19
|
+
export interface AndroidAnswers {
|
|
20
|
+
target: AndroidTarget;
|
|
21
|
+
avd?: string;
|
|
22
|
+
deviceId?: string;
|
|
23
|
+
browserStackDeviceName?: string;
|
|
24
|
+
browserStackOsVersion?: string;
|
|
25
|
+
app: AndroidAppAnswers;
|
|
26
|
+
}
|
|
27
|
+
export interface IosAnswers {
|
|
28
|
+
target: IosTarget;
|
|
29
|
+
simulatorName?: string;
|
|
30
|
+
deviceId?: string;
|
|
31
|
+
browserStackDeviceName?: string;
|
|
32
|
+
browserStackOsVersion?: string;
|
|
33
|
+
app: IosAppAnswers;
|
|
34
|
+
}
|
|
35
|
+
export type AndroidAppAnswers = {
|
|
36
|
+
source: 'path';
|
|
37
|
+
path: string;
|
|
38
|
+
packageName?: string;
|
|
39
|
+
activity?: string;
|
|
40
|
+
} | {
|
|
41
|
+
source: 'url';
|
|
42
|
+
url: string;
|
|
43
|
+
downloadPath?: string;
|
|
44
|
+
packageName?: string;
|
|
45
|
+
activity?: string;
|
|
46
|
+
} | {
|
|
47
|
+
source: 'installed';
|
|
48
|
+
packageName: string;
|
|
49
|
+
activity?: string;
|
|
50
|
+
};
|
|
51
|
+
export type IosAppAnswers = {
|
|
52
|
+
source: 'path';
|
|
53
|
+
path: string;
|
|
54
|
+
bundleId: string;
|
|
55
|
+
} | {
|
|
56
|
+
source: 'installed';
|
|
57
|
+
bundleId: string;
|
|
58
|
+
};
|
|
59
|
+
export interface InitFile {
|
|
60
|
+
path: string;
|
|
61
|
+
contents: string;
|
|
62
|
+
}
|
|
63
|
+
export declare function defaultInitAnswers(): InitAnswers;
|
|
64
|
+
export declare function promptInitAnswers(): Promise<InitAnswers>;
|
|
65
|
+
export declare function buildInitFiles(answers: InitAnswers): InitFile[];
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,KAAK,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAC1D,KAAK,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC;AAIvD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,SAAS,EAAE;QACT,UAAU,EAAE,KAAK,GAAG,IAAI,GAAG,iBAAiB,CAAC;QAC7C,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,mBAAmB,CAAC;QAC1C,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,mBAAmB,CAAC;KAC3C,CAAC;IACF,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,GAAG,CAAC,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,GAAG,EAAE,iBAAiB,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,GAAG,EAAE,aAAa,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9F;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,wBAAgB,kBAAkB,IAAI,WAAW,CAsBhD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAiD9D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,EAAE,CAmB/D"}
|
package/dist/scaffold.js
ADDED
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import { createInterface } from 'node:readline/promises';
|
|
2
|
+
import { stdin as input, stdout as output } from 'node:process';
|
|
3
|
+
export function defaultInitAnswers() {
|
|
4
|
+
return {
|
|
5
|
+
platforms: ['android'],
|
|
6
|
+
timeout: 20_000,
|
|
7
|
+
reports: {
|
|
8
|
+
html: true,
|
|
9
|
+
junit: true
|
|
10
|
+
},
|
|
11
|
+
artifacts: {
|
|
12
|
+
screenshot: 'only-on-failure',
|
|
13
|
+
video: 'retain-on-failure',
|
|
14
|
+
trace: 'off'
|
|
15
|
+
},
|
|
16
|
+
android: {
|
|
17
|
+
target: 'emulator',
|
|
18
|
+
avd: 'Pixel_9_API_35',
|
|
19
|
+
app: {
|
|
20
|
+
source: 'path',
|
|
21
|
+
path: './apps/demo.apk'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export async function promptInitAnswers() {
|
|
27
|
+
const rl = createInterface({ input, output });
|
|
28
|
+
try {
|
|
29
|
+
const platform = await select(rl, 'Which platforms will you test?', [
|
|
30
|
+
{ label: 'Android', value: 'android', description: 'Android emulator or real device' },
|
|
31
|
+
{ label: 'iOS', value: 'ios', description: 'iOS simulator or real device' },
|
|
32
|
+
{ label: 'Both', value: 'both', description: 'Generate Playwright projects for Android and iOS' }
|
|
33
|
+
]);
|
|
34
|
+
const platforms = platform === 'both' ? ['android', 'ios'] : [platform];
|
|
35
|
+
const answers = {
|
|
36
|
+
platforms,
|
|
37
|
+
timeout: Number(await ask(rl, 'Default mobile element timeout in ms', '20000')),
|
|
38
|
+
reports: {
|
|
39
|
+
html: await yesNo(rl, 'Generate Playwright HTML report?', true),
|
|
40
|
+
junit: await yesNo(rl, 'Generate JUnit XML report?', true)
|
|
41
|
+
},
|
|
42
|
+
artifacts: {
|
|
43
|
+
screenshot: await select(rl, 'Native screenshot capture?', [
|
|
44
|
+
{ label: 'Only on failure', value: 'only-on-failure' },
|
|
45
|
+
{ label: 'Always', value: 'on' },
|
|
46
|
+
{ label: 'Off', value: 'off' }
|
|
47
|
+
]),
|
|
48
|
+
video: await select(rl, 'Native video capture?', [
|
|
49
|
+
{ label: 'Retain on failure', value: 'retain-on-failure' },
|
|
50
|
+
{ label: 'Always', value: 'on' },
|
|
51
|
+
{ label: 'Off', value: 'off' }
|
|
52
|
+
]),
|
|
53
|
+
trace: await select(rl, 'Playwright trace capture?', [
|
|
54
|
+
{ label: 'Off', value: 'off' },
|
|
55
|
+
{ label: 'Retain on failure', value: 'retain-on-failure' },
|
|
56
|
+
{ label: 'Always', value: 'on' }
|
|
57
|
+
])
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
if (platforms.includes('android')) {
|
|
61
|
+
answers.android = await promptAndroid(rl);
|
|
62
|
+
}
|
|
63
|
+
if (platforms.includes('ios')) {
|
|
64
|
+
answers.ios = await promptIos(rl);
|
|
65
|
+
}
|
|
66
|
+
return answers;
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
rl.close();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function buildInitFiles(answers) {
|
|
73
|
+
return [
|
|
74
|
+
{
|
|
75
|
+
path: 'playwright.config.ts',
|
|
76
|
+
contents: buildPlaywrightConfig(answers)
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
path: 'tests/example.test.ts',
|
|
80
|
+
contents: buildExampleTest()
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
path: '.gitignore',
|
|
84
|
+
contents: buildGitignore()
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
path: 'ASTUR_SETUP.md',
|
|
88
|
+
contents: buildSetupReadme(answers)
|
|
89
|
+
}
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
function buildPlaywrightConfig(answers) {
|
|
93
|
+
const projects = answers.platforms.map((platform) => {
|
|
94
|
+
const config = platform === 'android'
|
|
95
|
+
? buildAndroidAsturConfig(answers)
|
|
96
|
+
: buildIosAsturConfig(answers);
|
|
97
|
+
return ` {
|
|
98
|
+
name: ${quote(projectName(platform, answers))},
|
|
99
|
+
use: {
|
|
100
|
+
astur: ${indent(config, 8)}
|
|
101
|
+
}
|
|
102
|
+
}`;
|
|
103
|
+
}).join(',\n');
|
|
104
|
+
const reporters = [
|
|
105
|
+
`['list']`,
|
|
106
|
+
...(answers.reports.html ? [`['html', { outputFolder: 'playwright-report/mobile', open: 'never' }]`] : []),
|
|
107
|
+
...(answers.reports.junit ? [`['junit', { outputFile: 'test-results/mobile/results.xml' }]`] : [])
|
|
108
|
+
];
|
|
109
|
+
return `import { defineConfig } from '@astur-mobile/test';
|
|
110
|
+
|
|
111
|
+
export default defineConfig({
|
|
112
|
+
testDir: './tests',
|
|
113
|
+
timeout: 120_000,
|
|
114
|
+
outputDir: 'test-results/mobile',
|
|
115
|
+
reporter: [
|
|
116
|
+
${reporters.join(',\n ')}
|
|
117
|
+
],
|
|
118
|
+
use: {
|
|
119
|
+
screenshot: 'off',
|
|
120
|
+
video: 'off',
|
|
121
|
+
trace: ${quote(answers.artifacts.trace)}
|
|
122
|
+
},
|
|
123
|
+
projects: [
|
|
124
|
+
${projects}
|
|
125
|
+
]
|
|
126
|
+
});
|
|
127
|
+
`;
|
|
128
|
+
}
|
|
129
|
+
function buildAndroidAsturConfig(answers) {
|
|
130
|
+
const android = requireAnswer(answers.android, 'Android');
|
|
131
|
+
const device = buildAndroidDevice(android);
|
|
132
|
+
const app = buildAndroidApp(android.app);
|
|
133
|
+
return `{
|
|
134
|
+
platform: 'android',
|
|
135
|
+
timeout: ${answers.timeout},
|
|
136
|
+
artifacts: {
|
|
137
|
+
screenshot: ${quote(answers.artifacts.screenshot)},
|
|
138
|
+
video: ${quote(answers.artifacts.video)}
|
|
139
|
+
},
|
|
140
|
+
device: ${device},
|
|
141
|
+
app: ${app}
|
|
142
|
+
}`;
|
|
143
|
+
}
|
|
144
|
+
function buildIosAsturConfig(answers) {
|
|
145
|
+
const ios = requireAnswer(answers.ios, 'iOS');
|
|
146
|
+
const device = buildIosDevice(ios);
|
|
147
|
+
const app = buildIosApp(ios.app);
|
|
148
|
+
return `{
|
|
149
|
+
platform: 'ios',
|
|
150
|
+
timeout: ${answers.timeout},
|
|
151
|
+
artifacts: {
|
|
152
|
+
screenshot: ${quote(answers.artifacts.screenshot)},
|
|
153
|
+
video: ${quote(answers.artifacts.video)}
|
|
154
|
+
},
|
|
155
|
+
device: ${device},
|
|
156
|
+
app: ${app}
|
|
157
|
+
}`;
|
|
158
|
+
}
|
|
159
|
+
function buildAndroidDevice(android) {
|
|
160
|
+
if (android.target === 'browserstack') {
|
|
161
|
+
return `{
|
|
162
|
+
cloud: {
|
|
163
|
+
provider: 'browserstack',
|
|
164
|
+
usernameEnv: 'BROWSERSTACK_USERNAME',
|
|
165
|
+
accessKeyEnv: 'BROWSERSTACK_ACCESS_KEY',
|
|
166
|
+
deviceName: ${quote(android.browserStackDeviceName ?? 'Google Pixel 8')},
|
|
167
|
+
osVersion: ${quote(android.browserStackOsVersion ?? '14.0')},
|
|
168
|
+
project: 'Astur',
|
|
169
|
+
build: 'local'
|
|
170
|
+
}
|
|
171
|
+
}`;
|
|
172
|
+
}
|
|
173
|
+
if (android.target === 'real') {
|
|
174
|
+
return android.deviceId
|
|
175
|
+
? `{ id: ${quote(android.deviceId)} }`
|
|
176
|
+
: `{ kind: 'real' }`;
|
|
177
|
+
}
|
|
178
|
+
return `{
|
|
179
|
+
kind: 'emulator',
|
|
180
|
+
avd: ${quote(android.avd ?? 'Pixel_9_API_35')},
|
|
181
|
+
autoBoot: true,
|
|
182
|
+
headless: false,
|
|
183
|
+
bootTimeout: 120_000
|
|
184
|
+
}`;
|
|
185
|
+
}
|
|
186
|
+
function buildIosDevice(ios) {
|
|
187
|
+
if (ios.target === 'browserstack') {
|
|
188
|
+
return `{
|
|
189
|
+
cloud: {
|
|
190
|
+
provider: 'browserstack',
|
|
191
|
+
usernameEnv: 'BROWSERSTACK_USERNAME',
|
|
192
|
+
accessKeyEnv: 'BROWSERSTACK_ACCESS_KEY',
|
|
193
|
+
deviceName: ${quote(ios.browserStackDeviceName ?? 'iPhone 15')},
|
|
194
|
+
osVersion: ${quote(ios.browserStackOsVersion ?? '17')},
|
|
195
|
+
project: 'Astur',
|
|
196
|
+
build: 'local'
|
|
197
|
+
}
|
|
198
|
+
}`;
|
|
199
|
+
}
|
|
200
|
+
if (ios.target === 'real') {
|
|
201
|
+
return ios.deviceId
|
|
202
|
+
? `{ id: ${quote(ios.deviceId)} }`
|
|
203
|
+
: `{ kind: 'real' }`;
|
|
204
|
+
}
|
|
205
|
+
return `{
|
|
206
|
+
name: ${quote(ios.simulatorName ?? 'iPhone 16 Pro')}
|
|
207
|
+
}`;
|
|
208
|
+
}
|
|
209
|
+
function buildAndroidApp(app) {
|
|
210
|
+
if (app.source === 'installed') {
|
|
211
|
+
return objectLiteral({
|
|
212
|
+
packageName: app.packageName,
|
|
213
|
+
activity: app.activity
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
if (app.source === 'url') {
|
|
217
|
+
return objectLiteral({
|
|
218
|
+
url: app.url,
|
|
219
|
+
downloadPath: app.downloadPath,
|
|
220
|
+
packageName: app.packageName,
|
|
221
|
+
activity: app.activity
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
return objectLiteral({
|
|
225
|
+
path: app.path,
|
|
226
|
+
packageName: app.packageName,
|
|
227
|
+
activity: app.activity
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function buildIosApp(app) {
|
|
231
|
+
if (app.source === 'installed') {
|
|
232
|
+
return objectLiteral({ bundleId: app.bundleId });
|
|
233
|
+
}
|
|
234
|
+
return objectLiteral({
|
|
235
|
+
path: app.path,
|
|
236
|
+
bundleId: app.bundleId
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
function buildExampleTest() {
|
|
240
|
+
return `import { expect, test } from '@astur-mobile/test';
|
|
241
|
+
|
|
242
|
+
test('app launches', async ({ device }) => {
|
|
243
|
+
await device.app.launch();
|
|
244
|
+
await expect(device.getByText('Welcome')).toBeVisible();
|
|
245
|
+
});
|
|
246
|
+
`;
|
|
247
|
+
}
|
|
248
|
+
function buildGitignore() {
|
|
249
|
+
return `node_modules/
|
|
250
|
+
playwright-report/
|
|
251
|
+
test-results/
|
|
252
|
+
.env
|
|
253
|
+
.env.*
|
|
254
|
+
`;
|
|
255
|
+
}
|
|
256
|
+
function buildSetupReadme(answers) {
|
|
257
|
+
const browserStack = [answers.android?.target, answers.ios?.target].includes('browserstack');
|
|
258
|
+
return `# Astur Setup
|
|
259
|
+
|
|
260
|
+
Generated by \`astur init\`.
|
|
261
|
+
|
|
262
|
+
## Next Commands
|
|
263
|
+
|
|
264
|
+
\`\`\`bash
|
|
265
|
+
npx astur-mobile doctor
|
|
266
|
+
npx astur-mobile test
|
|
267
|
+
\`\`\`
|
|
268
|
+
|
|
269
|
+
## What Was Generated
|
|
270
|
+
|
|
271
|
+
- \`playwright.config.ts\`: Playwright projects and Astur device/app config.
|
|
272
|
+
- \`tests/example.test.ts\`: starter mobile test.
|
|
273
|
+
- \`.gitignore\`: default ignored output folders, if one did not already exist.
|
|
274
|
+
|
|
275
|
+
## Selected Platforms
|
|
276
|
+
|
|
277
|
+
${answers.platforms.map((platform) => `- ${platform}`).join('\n')}
|
|
278
|
+
|
|
279
|
+
## Parallel Testing
|
|
280
|
+
|
|
281
|
+
Astur uses Playwright projects for parallel mobile runs. Each project creates one Astur device session. Parallel execution is supported when every project points at a distinct device, emulator, or simulator.
|
|
282
|
+
|
|
283
|
+
Examples:
|
|
284
|
+
|
|
285
|
+
- Android emulator + Android real device: create two projects with different \`device.id\` values.
|
|
286
|
+
- Multiple Android emulators: boot each AVD and give each project a unique \`device.id\`, such as \`emulator-5554\` and \`emulator-5556\`.
|
|
287
|
+
- Android + iOS: this wizard already generates separate projects when both platforms are selected.
|
|
288
|
+
|
|
289
|
+
Astur reserves each configured device per Playwright worker and fails fast if another worker tries to control the same target. Keep \`workers\` aligned with the number of available devices, and set \`workers: 1\` inside every project that maps to one physical device.
|
|
290
|
+
|
|
291
|
+
## Flutter Apps
|
|
292
|
+
|
|
293
|
+
Astur can test Flutter apps as a black-box native mobile app without using Appium or a Flutter-specific third-party driver. On Android it reads the UI through UIAutomator/accessibility, and on iOS native element support goes through the XCUITest agent boundary.
|
|
294
|
+
|
|
295
|
+
For reliable Flutter tests, expose stable semantics labels, text, and accessibility identifiers in the app. Astur does not currently inspect the Flutter widget tree, Dart VM service, \`ValueKey\`, or Flutter driver protocol directly.
|
|
296
|
+
|
|
297
|
+
${browserStack ? `## BrowserStack Note
|
|
298
|
+
|
|
299
|
+
BrowserStack config was scaffolded, including \`BROWSERSTACK_USERNAME\` and \`BROWSERSTACK_ACCESS_KEY\` environment variable names. Cloud execution is not implemented in the current Astur alpha yet, so this config is a forward-compatible placeholder. Use a local emulator, simulator, or real device for runnable tests today.
|
|
300
|
+
` : ''}
|
|
301
|
+
`;
|
|
302
|
+
}
|
|
303
|
+
async function promptAndroid(rl) {
|
|
304
|
+
const target = await select(rl, 'Android target?', [
|
|
305
|
+
{ label: 'Emulator', value: 'emulator', description: 'Local Android Studio AVD' },
|
|
306
|
+
{ label: 'Real device', value: 'real', description: 'USB-connected device with debugging enabled' },
|
|
307
|
+
{ label: 'BrowserStack', value: 'browserstack', description: 'Cloud config placeholder' }
|
|
308
|
+
]);
|
|
309
|
+
const app = await promptAndroidApp(rl);
|
|
310
|
+
if (target === 'emulator') {
|
|
311
|
+
return {
|
|
312
|
+
target,
|
|
313
|
+
avd: await ask(rl, 'Android AVD name', 'Pixel_9_API_35'),
|
|
314
|
+
app
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
if (target === 'real') {
|
|
318
|
+
return {
|
|
319
|
+
target,
|
|
320
|
+
deviceId: emptyToUndefined(await ask(rl, 'Android device id from adb devices -l (optional)', '')),
|
|
321
|
+
app
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
return {
|
|
325
|
+
target,
|
|
326
|
+
browserStackDeviceName: await ask(rl, 'BrowserStack Android device name', 'Google Pixel 8'),
|
|
327
|
+
browserStackOsVersion: await ask(rl, 'BrowserStack Android OS version', '14.0'),
|
|
328
|
+
app
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
async function promptIos(rl) {
|
|
332
|
+
const target = await select(rl, 'iOS target?', [
|
|
333
|
+
{ label: 'Simulator', value: 'simulator', description: 'Local Xcode simulator' },
|
|
334
|
+
{ label: 'Real device', value: 'real', description: 'Apple device connected to macOS' },
|
|
335
|
+
{ label: 'BrowserStack', value: 'browserstack', description: 'Cloud config placeholder' }
|
|
336
|
+
]);
|
|
337
|
+
const app = await promptIosApp(rl);
|
|
338
|
+
if (target === 'simulator') {
|
|
339
|
+
return {
|
|
340
|
+
target,
|
|
341
|
+
simulatorName: await ask(rl, 'iOS simulator name', 'iPhone 16 Pro'),
|
|
342
|
+
app
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
if (target === 'real') {
|
|
346
|
+
return {
|
|
347
|
+
target,
|
|
348
|
+
deviceId: emptyToUndefined(await ask(rl, 'iOS device id/UDID (optional)', '')),
|
|
349
|
+
app
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
return {
|
|
353
|
+
target,
|
|
354
|
+
browserStackDeviceName: await ask(rl, 'BrowserStack iOS device name', 'iPhone 15'),
|
|
355
|
+
browserStackOsVersion: await ask(rl, 'BrowserStack iOS version', '17'),
|
|
356
|
+
app
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
async function promptAndroidApp(rl) {
|
|
360
|
+
const source = await select(rl, 'Android app source?', [
|
|
361
|
+
{ label: 'Local APK path', value: 'path' },
|
|
362
|
+
{ label: 'Download APK URL at runtime', value: 'url' },
|
|
363
|
+
{ label: 'Already installed package/activity', value: 'installed' }
|
|
364
|
+
]);
|
|
365
|
+
if (source === 'installed') {
|
|
366
|
+
return {
|
|
367
|
+
source,
|
|
368
|
+
packageName: await askRequired(rl, 'Android package name'),
|
|
369
|
+
activity: emptyToUndefined(await ask(rl, 'Android launch activity (optional)', ''))
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
const packageName = emptyToUndefined(await ask(rl, 'Android package name (optional; inferred from APK when aapt is available)', ''));
|
|
373
|
+
const activity = emptyToUndefined(await ask(rl, 'Android launch activity (optional)', ''));
|
|
374
|
+
if (source === 'url') {
|
|
375
|
+
return {
|
|
376
|
+
source,
|
|
377
|
+
url: await askRequired(rl, 'APK download URL'),
|
|
378
|
+
downloadPath: emptyToUndefined(await ask(rl, 'APK download path (optional)', '')),
|
|
379
|
+
packageName,
|
|
380
|
+
activity
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
return {
|
|
384
|
+
source,
|
|
385
|
+
path: await ask(rl, 'Local APK path', './apps/demo.apk'),
|
|
386
|
+
packageName,
|
|
387
|
+
activity
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
async function promptIosApp(rl) {
|
|
391
|
+
const source = await select(rl, 'iOS app source?', [
|
|
392
|
+
{ label: 'Local .app path', value: 'path' },
|
|
393
|
+
{ label: 'Already installed bundle id', value: 'installed' }
|
|
394
|
+
]);
|
|
395
|
+
const bundleId = await askRequired(rl, 'iOS bundle id');
|
|
396
|
+
if (source === 'installed') {
|
|
397
|
+
return { source, bundleId };
|
|
398
|
+
}
|
|
399
|
+
return {
|
|
400
|
+
source,
|
|
401
|
+
path: await ask(rl, 'Local .app path', './apps/Demo.app'),
|
|
402
|
+
bundleId
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
async function select(rl, question, choices) {
|
|
406
|
+
output.write(`\n${question}\n`);
|
|
407
|
+
for (const [index, choice] of choices.entries()) {
|
|
408
|
+
const suffix = choice.description ? ` - ${choice.description}` : '';
|
|
409
|
+
output.write(` ${index + 1}. ${choice.label}${suffix}\n`);
|
|
410
|
+
}
|
|
411
|
+
while (true) {
|
|
412
|
+
const answer = (await rl.question(`Choose 1-${choices.length} [1]: `)).trim();
|
|
413
|
+
const index = answer ? Number(answer) - 1 : 0;
|
|
414
|
+
if (Number.isInteger(index) && choices[index]) {
|
|
415
|
+
return choices[index].value;
|
|
416
|
+
}
|
|
417
|
+
output.write(`Please choose a number between 1 and ${choices.length}.\n`);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
async function yesNo(rl, question, defaultValue) {
|
|
421
|
+
const suffix = defaultValue ? 'Y/n' : 'y/N';
|
|
422
|
+
const answer = (await rl.question(`${question} [${suffix}]: `)).trim().toLowerCase();
|
|
423
|
+
if (!answer) {
|
|
424
|
+
return defaultValue;
|
|
425
|
+
}
|
|
426
|
+
return ['y', 'yes'].includes(answer);
|
|
427
|
+
}
|
|
428
|
+
async function ask(rl, question, defaultValue) {
|
|
429
|
+
const answer = await rl.question(`${question}${defaultValue ? ` [${defaultValue}]` : ''}: `);
|
|
430
|
+
return answer.trim() || defaultValue;
|
|
431
|
+
}
|
|
432
|
+
async function askRequired(rl, question) {
|
|
433
|
+
while (true) {
|
|
434
|
+
const answer = (await rl.question(`${question}: `)).trim();
|
|
435
|
+
if (answer) {
|
|
436
|
+
return answer;
|
|
437
|
+
}
|
|
438
|
+
output.write('This value is required.\n');
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
function projectName(platform, answers) {
|
|
442
|
+
if (platform === 'android') {
|
|
443
|
+
return `android-${answers.android?.target ?? 'local'}`;
|
|
444
|
+
}
|
|
445
|
+
return `ios-${answers.ios?.target ?? 'local'}`;
|
|
446
|
+
}
|
|
447
|
+
function objectLiteral(values) {
|
|
448
|
+
const entries = Object.entries(values).filter((entry) => Boolean(entry[1]));
|
|
449
|
+
if (!entries.length) {
|
|
450
|
+
return '{}';
|
|
451
|
+
}
|
|
452
|
+
return `{\n${entries.map(([key, value]) => ` ${key}: ${quote(value)}`).join(',\n')}\n }`;
|
|
453
|
+
}
|
|
454
|
+
function indent(value, spaces) {
|
|
455
|
+
const padding = ' '.repeat(spaces);
|
|
456
|
+
return value.split('\n').map((line, index) => index === 0 ? line : `${padding}${line}`).join('\n');
|
|
457
|
+
}
|
|
458
|
+
function quote(value) {
|
|
459
|
+
return JSON.stringify(value).replaceAll('"', "'");
|
|
460
|
+
}
|
|
461
|
+
function emptyToUndefined(value) {
|
|
462
|
+
return value.trim() ? value.trim() : undefined;
|
|
463
|
+
}
|
|
464
|
+
function requireAnswer(answer, label) {
|
|
465
|
+
if (!answer) {
|
|
466
|
+
throw new Error(`${label} answers were not provided.`);
|
|
467
|
+
}
|
|
468
|
+
return answer;
|
|
469
|
+
}
|
|
470
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@astur-mobile/cli",
|
|
3
|
+
"version": "0.1.0-beta.0",
|
|
4
|
+
"description": "Astur command line interface.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"author": "Amr Salem",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"astur": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"assets"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc -b"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@astur-mobile/android": "0.1.0-beta.0",
|
|
31
|
+
"@astur-mobile/core": "0.1.0-beta.0",
|
|
32
|
+
"@astur-mobile/ios": "0.1.0-beta.0",
|
|
33
|
+
"@astur-mobile/protocol": "0.1.0-beta.0",
|
|
34
|
+
"@types/ws": "^8.18.1",
|
|
35
|
+
"ws": "^8.21.0"
|
|
36
|
+
},
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "git+https://github.com/Astur-mobile/Astur.git",
|
|
40
|
+
"directory": "packages/cli"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://astur-mobile.github.io/Astur/",
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/Astur-mobile/Astur/issues"
|
|
45
|
+
}
|
|
46
|
+
}
|