storebound aab <file> --json (offline packageName / versionCode / versionName / SDKs / sha256, no config) and play release --json result for CI scripts that replace their own Play API calls

This commit is contained in:
CRTkafa 2026-10-22 03:28:46 +08:00
parent ee35b11341
commit 256e8e33ad
9 changed files with 47 additions and 3 deletions

View file

@ -515,3 +515,12 @@ describe('apple build outside the GUI session (pitfall 101)', () => {
} finally { process.env = saved; }
});
});
describe('storebound aab (CI reads the version code without uploading)', () => {
test('prints packageName, versionCode, versionName as JSON', () => {
const d = dir('inspect-aab');
writeFileSync(join(d, 'app.aab'), makeAab('com.example.game', 4321, '3.1.0'));
const r = Bun.spawnSync(['bun', join(import.meta.dir, '..', 'cli', 'index.ts'), 'aab', 'app.aab', '--json'], { cwd: d, stdout: 'pipe', stderr: 'pipe' });
expect(JSON.parse(r.stdout.toString())).toMatchObject({ packageName: 'com.example.game', versionCode: 4321, versionName: '3.1.0' });
});
});

View file

@ -8,7 +8,7 @@ import { describeMethods } from '../cli/serve';
import { analyze, render } from '../tools/gen-desktop-coverage';
/** The only commands that make no sense in a window. Adding one here needs a reason in the coverage map. */
const NOT_FOR_DESKTOP = ['mcp', 'serve', 'desktop', 'api', 'settings'];
const NOT_FOR_DESKTOP = ['mcp', 'serve', 'desktop', 'api', 'settings', 'aab'];
describe('desktop coverage', () => {
const { rows, extra } = analyze();