mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-27 07:11:11 +00:00
feat(android): add Wear OS companion (#109433)
* feat(android): add Wear OS companion Co-authored-by: Sebastian Schubotz <git@sibbl.net> Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com> * style(android): format Wear release gate test * test(android): cover Wear release CI contracts * test(android): import Wear JSON fixture type * fix(android): harden Wear proxy event actor * test(android): stabilize Wear proxy actor tests * test(android): isolate Wear proxy actor lifecycles * test(android): own Wear actor dispatchers * test(android): use real time for Wear actor tests * test(android): own Wear actors in test scope * test(android): stop Wear actors explicitly * test(android): drain Wear actor cancellation * test(android): isolate Wear actors from test scheduler * test(android): inject Wear test clock --------- Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
61bec3a2de
commit
8d5e39afcd
@@ -159,7 +159,7 @@ describe("Android release artifacts", () => {
|
||||
const result = run(["--artifact", "debug", "--dry-run"]);
|
||||
|
||||
expect(result.status).toBe(1);
|
||||
expect(result.stderr).toContain("--artifact must be one of: all, play, third-party");
|
||||
expect(result.stderr).toContain("--artifact must be one of: all, play, wear, third-party");
|
||||
});
|
||||
|
||||
it("accepts the pinned standalone APK signing certificate", () => {
|
||||
|
||||
@@ -37,6 +37,8 @@ describe("Android Fastlane release upload gates", () => {
|
||||
it("preflights and records mobile release refs around Play build upload", () => {
|
||||
const fastfile = readFastfile();
|
||||
const uploadBuild = functionBody(fastfile, "upload_play_store_build!");
|
||||
const atomicUpload = functionBody(fastfile, "upload_play_builds_atomically!");
|
||||
const booleanEnv = functionBody(fastfile, "fastlane_boolean_env");
|
||||
|
||||
expect(fastfile).toContain("def mobile_release_ref_command");
|
||||
expect(fastfile).toContain("def release_git_sha");
|
||||
@@ -48,12 +50,25 @@ describe("Android Fastlane release upload gates", () => {
|
||||
expect(uploadBuild).toContain("record_mobile_release_ref!");
|
||||
expect(uploadBuild.match(/sha: release_sha/g)).toHaveLength(2);
|
||||
expect(uploadBuild.indexOf("ensure_mobile_release_ref_available!")).toBeLessThan(
|
||||
uploadBuild.indexOf("upload_to_play_store("),
|
||||
uploadBuild.indexOf("upload_play_builds_atomically!("),
|
||||
);
|
||||
expect(uploadBuild.indexOf("record_mobile_release_ref!")).toBeGreaterThan(
|
||||
uploadBuild.indexOf("upload_to_play_store("),
|
||||
uploadBuild.indexOf("upload_play_builds_atomically!("),
|
||||
);
|
||||
expect(uploadBuild).toContain("unless play_validate_only?");
|
||||
expect(atomicUpload.match(/client\.upload_bundle\(/g)).toHaveLength(2);
|
||||
expect(atomicUpload.match(/client\.begin_edit\(/g)).toHaveLength(1);
|
||||
expect(atomicUpload.match(/client\.commit_current_edit!/g)).toHaveLength(1);
|
||||
expect(atomicUpload).toContain("client.validate_current_edit!");
|
||||
expect(atomicUpload).toContain("client.abort_current_edit");
|
||||
expect(booleanEnv).toContain('["1", "yes", "true", "on"]');
|
||||
expect(booleanEnv).toContain('["0", "no", "false", "off"]');
|
||||
expect(atomicUpload).toContain(
|
||||
'fastlane_boolean_env("ACK_BUNDLE_INSTALLATION_WARNING", default: false)',
|
||||
);
|
||||
expect(atomicUpload).toContain(
|
||||
'fastlane_boolean_env("SUPPLY_RESCUE_CHANGES_NOT_SENT_FOR_REVIEW", default: true)',
|
||||
);
|
||||
});
|
||||
|
||||
it("generates fresh screenshots before building and uploading a release", () => {
|
||||
|
||||
@@ -2943,7 +2943,9 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
|
||||
).toEqual([
|
||||
{ check_name: "android-test-play", task: "test-play" },
|
||||
{ check_name: "android-test-third-party", task: "test-third-party" },
|
||||
{ check_name: "android-test-wear", task: "test-wear" },
|
||||
{ check_name: "android-build-play", task: "build-play" },
|
||||
{ check_name: "android-build-wear", task: "build-wear" },
|
||||
{ check_name: "android-ktlint", task: "ktlint" },
|
||||
]);
|
||||
|
||||
@@ -2965,7 +2967,9 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
|
||||
).toEqual([
|
||||
{ check_name: "android-test-play", task: "test-play" },
|
||||
{ check_name: "android-test-third-party", task: "test-third-party" },
|
||||
{ check_name: "android-test-wear", task: "test-wear" },
|
||||
{ check_name: "android-build-play", task: "build-play" },
|
||||
{ check_name: "android-build-wear", task: "build-wear" },
|
||||
{ check_name: "android-ktlint", task: "ktlint" },
|
||||
]);
|
||||
expect(
|
||||
|
||||
Reference in New Issue
Block a user